PL/SQL中调用存储过程。 很简单,SQL WINDOW 不支持。所以,不要在sql window执行过程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PL/SQL中执行存储过程需要这样写:begin Data_SaveWebFormCustom (1,'page2','页2','','','');end;/在COMMAND WINDOWS中你是怎么写的? 在COMMAND WINDOWS中我也是这样写的啊:Exec Data_SaveWebFormCustom (1,'page2','页2','','','');Commit;提示:存储过程执行成功。但并没有真正达到效果:增加一条记录。 空应该写null,或者你的过程参数设默认值,可以把某些参数省去。再次说明,sql window不能运行过程。command window就相当于sqlplus窗口 qiuyang_wang: 不行啊,我用你那中方式提示也是一样的:无效的SQL语句。 developer2002: 可是我在command window中运行没有报错啊,为什么就是没有真正达到效果呢?我的存储过程如下:create or replace procedure Data_SaveWebFormCustom(OpType number,WebEgName varchar2,WebChName varchar2,DataGridText varchar2,InsUpdText varchar2,ToolBarText varchar2)as num number;begin IF( OpType = 2 ) THEN delete from Hr_Data_WebFormCustom where WebEgName=WebEgName ; ELSE begin Select count(*) into num from Hr_Data_WebFormCustom where WebEgName=WebEgName; if (num <> 0) then update Hr_Data_WebFormCustom set WebChName = WebChName ,DataGridText = DataGridText ,InsUpdText = InsUpdText ,ToolBarText = ToolBarText where WebEgName= WebEgName ; else insert into Hr_Data_WebFormCustom( WebEgName , WebChName , DataGridText , InsUpdText , ToolBarText ) values( WebEgName , WebChName , DataGridText , InsUpdText , ToolBarText ) ; END IF; end; END IF; end; 你应该在你的存储过程中最后加上commit就行了,你在存储过程执行完之后再用commit是不起作用的。 提示无效可能是你当前连接的没有访问Data_SaveWebFormCustom的权限或参数传递错误。如果跨用户的调用,需要在前面加上用户名称,比如:sys.Data_SaveWebFormCustom().另外,你确定你的存储过程创建成功了吗?就是说是否你的存储过程处在无效状态? 我的存储过程创建是成功的了,同时是对同一个用户。我在存储过程后加上了commit了,可是还是没有效果啊而且我用ASP.NET程序来调用该存储过程,也是没有报错,可是后台就是没有结果。怎么搞的啊,头都大了。555 你在你的PL/SQL 中左边的窗口中找到该过程,然后右键选择test打开,可以单步执行,如果执行到最后没有提交的话,界面上会显示的,然后你点击它提交就可以了 Select count(*) into num from Hr_Data_WebFormCustom where WebEgName=WebEgName;明明我的表中没有 WebEgName=我传的值 的记录,可是num=1 ,怎么回事?结果本想执行INSERT的变成执行了UPDATE语句 oracle数据库 访问另一个用户的表?在同一个表空间 本人刚学oracle,偶然看到这么一道题目,请求帮忙。 分组,求和与统计的查询,急需. oracle中怎样执行这个sql,或者怎样调用 问一个闪回查询的问题(oralce10g) -迷惑 Oracle9i的启动和关闭方法? 请问如何查看Oracle的SQL语句操作提示? 怎么看一个角色的创建者是谁? 高分相送!如何用ASP取得存在BLOB字段中的图片,最好提供源码。 关于OCP认证的教材! 触发器问题,送分的 一个SQL语句,大家帮忙,在线等。
begin
Data_SaveWebFormCustom (1,'page2','页2','','','');
end;
/在COMMAND WINDOWS中你是怎么写的?
Exec Data_SaveWebFormCustom (1,'page2','页2','','','');
Commit;
提示:存储过程执行成功。但并没有真正达到效果:增加一条记录。
再次说明,sql window不能运行过程。command window就相当于sqlplus窗口
不行啊,我用你那中方式提示也是一样的:无效的SQL语句。
可是我在command window中运行没有报错啊,为什么就是没有真正达到效果呢?我的存储过程如下:
create or replace procedure Data_SaveWebFormCustom(OpType number,WebEgName varchar2,WebChName varchar2,DataGridText varchar2,InsUpdText varchar2,ToolBarText varchar2)
as
num number;
begin
IF( OpType = 2 ) THEN
delete from Hr_Data_WebFormCustom where WebEgName=WebEgName ;
ELSE
begin
Select count(*) into num from Hr_Data_WebFormCustom where WebEgName=WebEgName;
if (num <> 0) then
update Hr_Data_WebFormCustom
set WebChName = WebChName ,DataGridText = DataGridText ,InsUpdText = InsUpdText ,ToolBarText = ToolBarText
where WebEgName= WebEgName ;
else
insert into Hr_Data_WebFormCustom( WebEgName , WebChName , DataGridText , InsUpdText , ToolBarText )
values( WebEgName , WebChName , DataGridText , InsUpdText , ToolBarText ) ;
END IF;
end;
END IF;
end;
如果跨用户的调用,需要在前面加上用户名称,比如:sys.Data_SaveWebFormCustom().
另外,你确定你的存储过程创建成功了吗?就是说是否你的存储过程处在无效状态?
我在存储过程后加上了commit了,可是还是没有效果啊
而且我用ASP.NET程序来调用该存储过程,也是没有报错,可是后台就是没有结果。
怎么搞的啊,头都大了。555
打开,可以单步执行,如果执行到最后没有提交的话,界面上会显示的,然后你点击它提交就可以了
明明我的表中没有 WebEgName=我传的值 的记录,可是num=1 ,怎么回事?
结果本想执行INSERT的变成执行了UPDATE语句