create table lshtemp(LSH nvarchar2(50));create table t1(maxno number);create or replace procedure pro_BH6
(
BHKey in varchar2,
TableName in varchar2,
n out number
)
as
begin
declare
sqlstr varchar2(200):='SELECT MAX(to_binary_double(SUBSTR(:1,9,3)))+1 FROM '||TableName;
cnt t1%rowtype;
begin
EXECUTE IMMEDIATE sqlstr
into cnt
using BHKey;
n:=cnt.maxno;
DBMS_OUTPUT.put_line(cnt.maxno);
DBMS_OUTPUT.put_line(sysdate);
end;
end;
以上代码在PL/SQL 中成功运行创建了存储过程pro_BH6
并且有效,测试pro_BH6时BHKey为LSH,TableName为lshtemp
但是结果
DBMS_OUTPUT.put_line(cnt.maxno);这行输出空,不知道哪儿有问题?求高手指导
(
BHKey in varchar2,
TableName in varchar2,
n out number
)
as
begin
declare
sqlstr varchar2(200):='SELECT MAX(to_binary_double(SUBSTR(:1,9,3)))+1 FROM '||TableName;
cnt t1%rowtype;
begin
EXECUTE IMMEDIATE sqlstr
into cnt
using BHKey;
n:=cnt.maxno;
DBMS_OUTPUT.put_line(cnt.maxno);
DBMS_OUTPUT.put_line(sysdate);
end;
end;
以上代码在PL/SQL 中成功运行创建了存储过程pro_BH6
并且有效,测试pro_BH6时BHKey为LSH,TableName为lshtemp
但是结果
DBMS_OUTPUT.put_line(cnt.maxno);这行输出空,不知道哪儿有问题?求高手指导
解决方案 »
- 只是简单的数据库链接,预编译成的C语言代码,有个地方不明白。
- ORACLE SQL语句求助 oracle中table中默认存在emp,dept表,在这基础上询问
- sql中,怎样去掉记录中的回车键
- oracle while-loop循环
- Toad Bug
- Oracle902中提示missing keyword
- select * from dba_source as of timestamp sysdate-1/12
- 再次请教jsp与数据库连接
- 谁能说说,Oracle中的表dual?
- 为什么我的正版的8.16总是说没有监听器。我配置了没反映啊!!!
- 请问谁做过EBS中HXC模块的二次开发啊?有点是求助
- 新手诚恳请教不同数据库批量查询问题
--如果把你的sql语句拆分了,是下面这样的情况;
--你怎么能够把一个binary_double值赋给表名呢?
SELECT MAX(to_binary_double(SUBSTR(:1,9,3)))+1 into table_name
FROM TableName;
这个语句执行结果的值取出来呢?我的目的就是要取出这个值
create or replace procedure pro_BH6(
BHKey in varchar2,
TableName in varchar2,
n out number)
as
sqlstr varchar2(200):='SELECT MAX(to_binary_double(SUBSTR(:1,9,3)))+1 FROM '||TableName;
cnt number;--这里定义一个number变量就可以了
begin
EXECUTE IMMEDIATE sqlstr
into cnt --这里赋值
using BHKey;
n:=cnt;
DBMS_OUTPUT.put_line(cnt);
DBMS_OUTPUT.put_line(sysdate);
end pro_BH6;
sqlstr varchar2(200):='SELECT MAX(to_binary_double(SUBSTR('||BHKey||',9,3)))+1 FROM '||TableName;应该这样拼接BHKey。
呵呵,是在输入错误的表名时提示无该对象,但是输入错误的BHKey时没有提示,就想到在查动态SQL的资料时提到过绑定参数来传递SQL模式对象是不行的,要直接把参数嵌套在字符串中。