declare
--型別定義
cursor c_job
is
select invclasscode,invclassname from bd_invcl where forinvname='1';
--定義一個游標變數v_cinfo c_emp%ROWTYPE ,該型別為游標c_emp中的一行資料型別
c_row c_job%rowtype;
begin
for c_row in c_job loop
dbms_output.put_line('select * from bd_invcl where invclasscode like '''||c_row.invclasscode||'%''');
BEGIN
execute immediate 'select * from bd_invcl where invclasscode like '''||c_row.invclasscode||'%''';
commit;
END;
end loop;
end;
bms_output.put_line 這個可以正常輸出
execute immediate 這個執行不了,也不報錯
uj5u.com熱心網友回復:
問題是你想得到什么結果。想讓他輸出什么呢?想列印查詢結果串列?如果想校驗結果,你可以換成 insert等查看結果。
uj5u.com熱心網友回復:
在 PLSQL 中:select 要有 into 子句,或者這是一個游標。
uj5u.com熱心網友回復:
dbms_output是輸出字串,所以你可以直接寫select * from ...execute immediate 這是執行動態SQL,不能直接寫select * from ...,只能是select * into *** from ....
你這句動態SQL想干嘛?完全看不懂,想要回傳結果集?
另外SELECT后面不需要COMMIT, 都沒有更新資料。
uj5u.com熱心網友回復:
我試試,之前用的mssql 直接execute 就可以出結果,
付訓到oracle ,還不太熟悉
uj5u.com熱心網友回復:
1.必須定義兩個變數去接收輸出的值:select invclasscode,invclassname from bd_invcl where forinvname='1'
2.必須定義一個游標
select * from bd_invcl where invclasscode like 。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/62127.html
標籤:開發
上一篇:這是什么原因呢
