当前位置:首页 » 编程语言 » 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 09:18:10 浏览:511
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:892
服务器搭建需要哪些东西 发布:2025-07-10 09:15:23 浏览:801
无限密码怎么改 发布:2025-07-10 09:14:32 浏览:104
coc按键精灵脚本 发布:2025-07-10 09:12:40 浏览:311
excel表格ftp函数 发布:2025-07-10 09:05:50 浏览:276
u2game的解压密码 发布:2025-07-10 09:05:14 浏览:597
c语言编译器ide苹果下载 发布:2025-07-10 09:05:13 浏览:293
andftp端口 发布:2025-07-10 08:57:04 浏览:607
战地一有什么不用加速器的服务器 发布:2025-07-10 08:51:33 浏览:405