跟匿名块一样的declare v number; t number --1 ,ok ;o no k varchar2(100):='xxx'; --传入参数 beginp1(k,t,v); if t=1 then .... end if; end;
create or replace procedure A as v_retCode char(1); v_result varchar2(100); begin --调用B存储过程 B(v_retCode,v_result); dbms_output.put_line('v_result:' || v_result); end;
cursor cur is select accno,ccy,accnobalance from your_table; begin for c in cur loop v_accno := c.accno; v_ccy := c.ccy; v_accnobalance := c.accnobalance;
v number;
t number --1 ,ok ;o no
k varchar2(100):='xxx'; --传入参数
beginp1(k,t,v);
if t=1 then
....
end if;
end;
create or replace procedure A as
v_retCode char(1);
v_result varchar2(100);
begin
--调用B存储过程
B(v_retCode,v_result);
dbms_output.put_line('v_result:' || v_result);
end;
accno,ccy,accnobalance我要查询出
accno,ccy,accnobalance,todaybalance
其中的todaybalance=calc(accno,ccy,date,retcode,result);就是说,我希望选择出所有的列,但是要多一列计算列,是根据当天的日期和每一列的accno和ccy,调用一个calc的存储过程来计算出来的,这样要怎么写呢?
create or replace procedure your_proc
is
v_accno your_table.accno%type;
v_ccy your_table.ccy%type;
v_accnobalance your_table.accnobalance%type;
v_retcode your_type; -- 不知道你calc過程中的參數類型
v_result your_type; -- 不知道你calc過程中的參數類型
cursor cur is
select accno,ccy,accnobalance from your_table;
begin
for c in cur loop
v_accno := c.accno;
v_ccy := c.ccy;
v_accnobalance := c.accnobalance;
-- 你的calc是過程還是函數呀?怎麼你寫成
-- todaybalance=calc(accno,ccy,date,retcode,result);
calc(v_accno, v_ccy, date, v_retcode, v_result); -- 不知道你的date是什麼
-- 我猜result就是你要的結果todaybalance吧
dbms_output.put_line('retcode=' || v_retcode || ', result=' || v_result);
end loop;
end;
還有,todaybalance是不是calc中返回的result值?