我再pl/sql中创建存储过程,语法如下:
创建:
create or replace procedure proc_add
(
@uno number,
@uname varchar2(20),
@upwd varchar2(20)
)
as
begin
insert into user_info
values
(@uno, @uname, @upwd);
end;
执行:
exec proc_add @uno='1',@uname='2',@upwd='3'
创建时没错误,执行时却报无效的SQL语句
打开procedure栏发行这个存储过程上有个错误叉请高手们解决下
谢谢!!!!!!!!
创建:
create or replace procedure proc_add
(
@uno number,
@uname varchar2(20),
@upwd varchar2(20)
)
as
begin
insert into user_info
values
(@uno, @uname, @upwd);
end;
执行:
exec proc_add @uno='1',@uname='2',@upwd='3'
创建时没错误,执行时却报无效的SQL语句
打开procedure栏发行这个存储过程上有个错误叉请高手们解决下
谢谢!!!!!!!!
解决方案 »
- 请教 Ant 外部文件的使用
- 数据库拿值问题
- Hibernate3.5 +Spring+mysql 日文乱码
- Struts2不能转发访问action路径,怎么回事?Struts1却可以。。。
- 急求:apache+tomcat在win2k下的整合及有效的相关资源链接
- JavaMail中的乱码问题!!!
- JDBC中大批量数据的查询中速度问题
- java的图形设计比如swing有前途吗?大家来讨论下,迷惑中。。。
- 怎样用Java做ASP组件(COM DLL)供ASP使用?
- 在cmd中输入where java显示'where' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- axis2 java.lang.reflect.InvocationTargetException
- 使用Lucence(Hibernate自带有search)索引
1、去掉@
2、传参数的时候不要写长度
正确的写法:
create or replace procedure proc_add
(
uno number,
uname varchar2,
upwd varchar2
)
as
begin
insert into user_info
values
(uno, uname, upwd);
end;
----------
你的创建的时候肯定出错了
exec proc_add 1,2,3;
还有就是你的执行 存储过程的时候出现错误了exec proc_add @uno='1',@uname='2',@upwd='3' --这个写法是错误的
应该是这样写的 exec proc_add (1,'2','3');
Oracle中变量定义不用@符号,楼主是从SQLServer转过来的吧?
exec proc_add (1,'2','3'); ????/??
username => 'tmep',
upassword => 'tmp');
end;
之前的那种写法是在cmd中进行的,
你要是在PL/SQL中执行的话,使用现在的这个吧。