當前位置:首頁 » 編程語言 » oracle動態sql返回值

oracle動態sql返回值

發布時間: 2024-12-06 17:11:51

⑴ 在ORACLE自定義函數里怎麼獲取一個動態sql的記錄--急

參考下這個:
declare
cursor v_tablename_cursor is
select * from v_tablename
being
for tmprow in v_tablename_cursor
loop
tmprow就是條記錄了
end loop;
end;

⑵ ORACLE FUNCTION 中如何動態執行一個未知具體列SQL後得到每行每列的數據(對每行數據的每列加分隔符拼接用)

這個需求好奇怪……

既然SQL是入參,想怎麼拼還不是傳進去的入參的問題?

按照你的例子最後的要求,想要得到'aaa分隔符bbb'的話,入參應該是「SELECT 'aaa' || '分隔符 || 'bbb' FROM al」;

另外列名也是可以從入參定義的啊。例如剛才你的列名如果想要叫ccc的話,入參改成「SELECT 'aaa' || '分隔符 || 'bbb' AS ccc FROM al」

難道還能不知道入參而調用Function么?

⑶ 如何在oracle存儲過程中執行動態sql語句

時需要在oracle 存儲過程中執行動態SQL 語句 ,例如表名是動態的,或欄位是動態的,
或查詢命令是動態的,可用下面的方法:
set serveroutput ondeclaren number;sql_stmt varchar2(50);
t varchar2(20);beginexecute immediate 'alter session set nls_date_format=''YYYYMMDD''';
t := 't_' || sysdate;
sql_stmt := 'select count(*) from ' || t;
execute immediate sql_stmt into n;
dbms_output.put_line('The number of rows of ' || t || ' is ' || n);end;
如果動態SQL 語句 很長很復雜,則可用包裝.
CREATE OR REPLACE PACKAGE test_pkgISTYPE cur_typ IS REF CURSOR;
PROCEDURE test_proc (v_table VARCHAR2,t_cur OUT cur_typ);END;/
CREATE OR REPLACE PACKAGE BODY test_pkgISPROCEDURE test_proc (v_table VARCHAR2,t_cur OUT cur_typ)ISsqlstr VARCHAR2(2000);BEGINsqlstr := 'SELECT * FROM '||v_table;
OPEN t_cur FOR sqlstr;END;END;/
在oracle 中批量導入,導出和刪除表名以某些字元開頭的表
spool c:\a.sql

熱點內容
戰地一有什麼不用加速器的伺服器 發布:2025-07-10 08:51:33 瀏覽:404
linux怎麼看自己伺服器的ip 發布:2025-07-10 08:51:29 瀏覽:135
怎麼寫腳本刷視頻 發布:2025-07-10 08:49:51 瀏覽:381
安卓微信在哪裡設置鈴聲 發布:2025-07-10 08:48:05 瀏覽:232
dropbear編譯 發布:2025-07-10 08:27:35 瀏覽:684
我的世界電腦建造伺服器推薦 發布:2025-07-10 08:13:08 瀏覽:401
如何提高存儲數據的速度 發布:2025-07-10 07:55:57 瀏覽:259
規范c語言代碼 發布:2025-07-10 07:55:57 瀏覽:517
在線砍價源碼 發布:2025-07-10 07:55:56 瀏覽:796
編程工作年限 發布:2025-07-10 07:44:42 瀏覽:143