不行,execute immediate只能用在oracle8i以上版本
你用dbms_sql()包吧
你用dbms_sql()包吧
解决方案 »
- 求助 : PL/SQL里的 SQL语句 如何变成导出数据的脚本
- 求高手:PLSQL子程序中调用外部C例程的问题
- SQL删除字段问题
- oracle的错误提示
- 求助:CrystalReport for VS.NET + Oracle开发报表时所遇到的问题,在线等,叩谢!!!(没有办法,级别低,分少!)
- 撤销表空间undotbs1占用很多重启计算机都不减少?
- 如何查询到小数点3位数的所有行数。
- 请问一sql语句,涉及到多表,急急急,
- 请教一个所有学习oracle的人都关心的问题:oracle的ocp认证
- 求助:一般情况按年分组,特殊年份按指定日期分组,SELECT语句怎么写?
- 急,这个SQL如何写?
- 如何在oracle8.1.7中加一sql作业?任务中为什么没有sql*plus任务?以及如何定位是使用哪个数据库?
用dbms_sql来实现
CREATE OR REPLACE PROCEDURE demo(salary IN NUMBER) AS
cursor_name INTEGER;
rows_processed INTEGER;
BEGIN
cursor_name := dbms_sql.open_cursor;
DBMS_SQL.PARSE(cursor_name, 'DELETE FROM emp WHERE sal > :x',
dbms_sql.native);
DBMS_SQL.BIND_VARIABLE(cursor_name, ':x', salary);
rows_processed := dbms_sql.execute(cursor_name);
DBMS_SQL.close_cursor(cursor_name);
EXCEPTION
WHEN OTHERS THEN
DBMS_SQL.CLOSE_CURSOR(cursor_name);
END;