存储过程中execute immediate 'select ...
换成下面语句。dbms_output.put_line('SELECT COUNT(*) FROM ' || p_tableName || ' WHERE ' || p_fieldName || ' IS NULL '); 执行存储过程,看输出语句在sql*plus里面是否可以正常运行。
换成下面语句。dbms_output.put_line('SELECT COUNT(*) FROM ' || p_tableName || ' WHERE ' || p_fieldName || ' IS NULL '); 执行存储过程,看输出语句在sql*plus里面是否可以正常运行。
解决方案 »
- 用toad 怎么导库呢?谢谢
- 理论上,一个数据库是否可以无限大?
- ORACLE 1521出现N多TIME_WAIT的问题
- /usr/lib/hpux64/dld.so: Unable to find library 'libsqlplus.so'.这个错误怎么解决
- 牛人進oracle全文檢索問題
- 重做日志全部被误删除,怎么恢复数据库?
- 求删记录的存储过程。
- 请问哪里有oracle9i的安装指南,包括win2k和linux下面的
- 在oracle9.0.1中创建一个库及其用户名和密码的指令是什么?
- spatial 对象问题
- 请教execute immediate执行动态SQL语句的问题。
- PL/SQL 怎么判断一个studentID 是否在student 表中 ??
执行正常。
create or replace procedure SSSUSER.papp_canbe_pkfield
(
p_tablename in tapp_table.table_name%type,
p_fieldname in tapp_field.field_name%type
)
as
v_nullrowcount int;
v_distinctrowcount int;
v_allrowcount int;
mystr varchar2(1000);
begin
mystr := 'select count(*) from ' || p_tablename || ' where ' || p_fieldname || ' is null ';
execute immediate mystr into v_nullrowcount ;
dbms_output.put_line(to_char(v_nullrowcount));
end;