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 = '%&_%';
4

2 に答える 2

0

コマンドを使用する必要がACCEPTあります。これにより、ユーザーはスクリプトを操作できます。このような:

09:26:55 SYSTEM@dwal> create table t (key number primary key, value varchar2(10));

Table created.

09:27:15 SYSTEM@dwal> insert into t values (1, 'abcdef');

1 row created.

09:27:20 SYSTEM@dwal> insert into t values (2, 'ghijkl');

1 row created.

09:27:32 SYSTEM@dwal> commit;

Commit complete.

09:28:48 SYSTEM@dwal> accept search_str char prompt "enter parameter > ";
enter parameter > def
09:30:01 SYSTEM@dwal> select * from t where value like '%&search_str.%';

       KEY VALUE
---------- ----------
         1 abcdef
于 2012-12-06T01:37:11.283 に答える
0

次のようなパラメーターを受け取るストアド プロシージャを作成できます。

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

正確な構文がわからない、Oracle db を使用していない..

詳細: http://www.ics.com/files/docs/dx/tut6.html

于 2012-11-29T22:03:19.730 に答える