create procedure test(table_name)
as
open cursor_mycursor for select colunm1,colunm2 from :table_name;
begin
end;出错:编译时table_name未定义。
如何解决??
谢谢!!
as
open cursor_mycursor for select colunm1,colunm2 from :table_name;
begin
end;出错:编译时table_name未定义。
如何解决??
谢谢!!
解决方案 »
- 求助!有个关于经纬度分组的SQL不会写
- 从ORACLE导入数据库结构和数据到SQLSERVER的问题!
- about logmnr,急急急
- PL_SQL存储过程里面写EMAIL发送问题
- 特急oracle安装问题:不能创建数据库,其他一切正常,这是怎么回事?
- 救救我吧 紧急求助: ORA-12560: TNS: 协议适配器错误
- 入门问题,什么是 oracle developer suite?
- 在非归档模式下,数据块读取失败。解决方法有没有????(在线等待)
- 关于数据库效率问题,大家进来聊聊吧
- 连接数据库时发生这样的错误是因为什么?
- 存储过程包的一个存储过程,PL/SQL中能编译,测试窗口能执行,但调试时提示'通信通道的文件结束',此时没有断网,session中无执行进程,无锁表.
- oracle 精度问题
表名、字段名都不能为变量,在嵌入式SQL语句中,如果实现动态表名以及字段名需要使用动态SQL语句。
即构造一个字符串,然后execute.
以下是先前见过 的一个例子,供 lz参考:
--===================动态SQL=================--
VARIABLE maxsal NUMBER; --声明变量
EXECUTE :maxsal := 2500; --执行引用并给变量赋值
DECLARE
r_emp EMP%ROWTYPE; --声明一个行类型变量
TYPE c_type IS REF CURSOR; --声明REF游标类型
cur c_type; --声明REF游标类型的变量
p_salary NUMBER; --声明一个标量变量
BEGIN
p_salary := :maxsal; --引用变量
--使用USING语句将引用到的值传给动态SQL语句'SAL >: 1'中的'1'
OPEN cur FOR 'SELECT * FROM EMP WHERE SAL >: 1 ORDER BY SAL DESC'
USING p_salary;
DBMS_OUTPUT.PUT_LINE('薪水大于' || p_salary || '的员工有:');
LOOP
FETCH cur
INTO r_emp;
EXIT WHEN cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('编号:' || r_emp.empno || '姓名:' || r_emp.ename ||
'薪水:' || r_emp.sal);
END LOOP;
CLOSE cur; --关闭游标
END;