2012-11-29 55 views
0

我想創建一個報告,產生工具的租金,因爲它需要互動,我想用戶能夠輸入部分名稱的工具或全部名字來調出該工具的所有租金。如何創建一個用戶輸入的查詢搜索

TTITLE CENTER ==================== SKIP 1- 
CENTER 'U T O O L' skip 1- 
CENTER ==================== SKIP 1 - 
LEFT 'Rental Report ' SKIP 1 - 
LEFT ============ SKIP 2- 
RIGHT 'Page:' - 
FORMAT 999 SQL.PNO SKIP 2 

set pagesize 50 

column MEMBERNAME HEADING 'Member Name' format a20 
column TOTAL HEADING 'Total Cost' format L9,999.99 

compute sum label 'Total Cost: ' of TOTAL on MEMBERNAME 
Break on Rental_ID on Member_ID on MEMBERNAME on Member_ID on Tel SKIP 1 

select Member.Member_ID, SUBSTR(Member.FName,0,10) || SUBSTR(' ',0,10) || 
SUBSTR(Member.SName,0,15) as MEMBERNAME, Member.Tel, 
Rental.Rental_ID, 
Tool.Name, 
Rental.DateOut, 
Rental.DateIn, 
Rental_Line.Qty, 
Rental_Line.Price, 
Rental_Line.Qty*Rental_Line.Price as TOTAL 
from Rental_Line 
INNER JOIN Rental 
on Rental.Rental_ID = Rental_Line.Rental_ID 
INNER JOIN Member 
on Rental.Member_ID = Member.Member_ID 
INNER JOIN Tool_Instance 
on Rental_Line.Tool_Instance_ID = Tool_Instance.Tool_Instance_ID 
INNER JOIN Tool 
on Tool_Instance.Tool_ID = Tool.Tool_ID 
where Tool.Name = '%&_%'; 

回答

0

您可以創建一個存儲過程,它接受一個參數,像這樣:

CREATE PROCEDURE rentalReport(toolName IN varchar) 
AS 
--your query here 
where Tool.Name = toolName 

不知道確切的語法,還沒有使用Oracle數據庫..

更多信息: http://www.ics.com/files/docs/dx/tut6.html

0

您應該使用ACCEPT命令 - 它使用戶能夠與腳本進行交互。像這樣:

09:26:55 [email protected]> create table t (key number primary key, value varchar2(10)); 

Table created. 

09:27:15 [email protected]> insert into t values (1, 'abcdef'); 

1 row created. 

09:27:20 [email protected]> insert into t values (2, 'ghijkl'); 

1 row created. 

09:27:32 [email protected]> commit; 

Commit complete. 

09:28:48 [email protected]> accept search_str char prompt "enter parameter > "; 
enter parameter > def 
09:30:01 [email protected]> select * from t where value like '%&search_str.%'; 

     KEY VALUE 
---------- ---------- 
     1 abcdef