oracle 调用存储过程语句问题
调用存储过程:declarestudent1varchar2(20);studentvarchar2(20);beginP_EXPORTDATA('student1','...
调用存储过程:
declare
student1 varchar2(20);
student varchar2(20);
begin
P_EXPORTDATA('student1','student');
end;
ORA-00904: "C": invalid identifier
ORA-06512: at "DMC.P_EXPORTDATA", line 6
ORA-06512: at line 7
存储过程的是两个传入参数,都是表名
不能正确执行,是不是我写的存储过程有问题啊,大家来看下
CREATE OR REPLACE PROCEDURE P_EXPORTDATA(TAB1 IN VARCHAR2,
TAB2 IN VARCHAR2) IS
V_SQL VARCHAR2(2000);
BEGIN
V_SQL := 'INSERT INTO ' || TAB1 || '(c1,c2,c3) SELECT a,b,c FROM ' || TAB2;
execute immediate V_SQL;
END P_EXPORTDATA; 展开
declare
student1 varchar2(20);
student varchar2(20);
begin
P_EXPORTDATA('student1','student');
end;
ORA-00904: "C": invalid identifier
ORA-06512: at "DMC.P_EXPORTDATA", line 6
ORA-06512: at line 7
存储过程的是两个传入参数,都是表名
不能正确执行,是不是我写的存储过程有问题啊,大家来看下
CREATE OR REPLACE PROCEDURE P_EXPORTDATA(TAB1 IN VARCHAR2,
TAB2 IN VARCHAR2) IS
V_SQL VARCHAR2(2000);
BEGIN
V_SQL := 'INSERT INTO ' || TAB1 || '(c1,c2,c3) SELECT a,b,c FROM ' || TAB2;
execute immediate V_SQL;
END P_EXPORTDATA; 展开
3个回答
展开全部
exec P_EXPORTDATA('student1','student');
或是
declare
v_student1 varchar2(20);
v_student varchar2(20);
begin
v_student1:='student1';
v_student:='student';
P_EXPORTDATA(v_student1,v_student);
end;
或是
declare
v_student1 varchar2(20);
v_student varchar2(20);
begin
v_student1:='student1';
v_student:='student';
P_EXPORTDATA(v_student1,v_student);
end;
更多追问追答
追问
不可以的哦,报的还是跟以上的错误是一样的。我的怎么不能用第一种方法调用呢,总报错
追答
你的过程原来的参数变量是什么数据类型
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P_EXPORTDATA("student1","student");
Try again
Try again
追问
试过是用双引号的 不可以的
是不是我的存储过程有问题啊 CREATE OR REPLACE PROCEDURE P_EXPORTDATA(TAB1 IN VARCHAR2,
TAB2 IN VARCHAR2) IS
V_SQL VARCHAR2(2000);
BEGIN
V_SQL := 'INSERT INTO ' || TAB1 || '(c1,c2,c3) SELECT a,b,c FROM ' || TAB2;
execute immediate V_SQL;
END P_EXPORTDATA;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是表名还是字段名呀??
如果是表名的话,那它应该是一个游标类型的呀,应该表存储的是一个表结构呀,怎么能是VARCHAR2类型的呢?
如果是表名的话,那它应该是一个游标类型的呀,应该表存储的是一个表结构呀,怎么能是VARCHAR2类型的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询