create or replace procedure p_get_table_file(tablename in varchar2)
is
type c_CurRef is ref cursor;
r_curref c_CurRef;
begin
open r_curref for 'select * from '||tablename;
fetch r_curref into *** /*tablename是用户输入的一个表名,这里的这个变量如何定义?*/end p_get_table_file;
希望高手指点迷津,谢谢!
is
type c_CurRef is ref cursor;
r_curref c_CurRef;
begin
open r_curref for 'select * from '||tablename;
fetch r_curref into *** /*tablename是用户输入的一个表名,这里的这个变量如何定义?*/end p_get_table_file;
希望高手指点迷津,谢谢!
解决方案 »
- 字符字段做为查询条件,如果字段值为‘’,则查询条件不起作用
- 在oracle9i的表中误删除几行记录,怎么恢复?
- DBA!!!!
- 用plsql登陆了,想看下本用户的角色权限,这个sql如何写啊?
- 性能问题(为什么天这么蓝呢?)
- oracle中创建用户.赋予权限时,admin和grant分别代表什么意思啊???
- 怎么存入数据库中DATE型字段的数据是:23-三月 -0005 12:00:00 AM,我想想变成“yyyy-mm-dd”格式的日期
- 出错信息为:“ORA-00932: 数据类型不一致”。
- 这样的SQL语句怎么写?在线等
- 出现"ORA-03113:通信通道的文件结束",怎么办?
- oracle增量级别的问题
- 问个impdp的问题
声明语句变量:v_sql varchar2(100);
先构造 v_sql语句:v_sql:='select * from '||tablename;
然后再 open r_curref for V_SQL;
隐式游标不用明确建立游标变量
CURSOR FOR LOOP,用于for loop语句例 for my_dept_rec in ( select department_name, department_id from departments)
loop
dbms_output.put_line(my_dept_rec.department_id || ' : ' || my_dept_rec.department_name);
end loop;
create or replace procedure p_get_table_file(tablename in varchar2) is
w_sql varchar2(32000) :=
'declare
type c_CurRef is ref cursor;
r_curref c_CurRef;
w_rec '||tablename||'%rowtype;
begin
open r_curref for ''select * from '||tablename||''';
fetch r_curref into w_rec;
-- do whatever you want with the data
end;';
begin
execute immediate w_sql;
end p_get_table_file;