请问,如下错误是什么情况,是否为我的存储过程有问题?
运行本程序的时候出现如下错误:
下面是\a\cost\include\compute.php 中调用存储过程那部分代码,
下面是oracle9i数据库中写的存储过程:
Warning: ociexecute(): OCIStmtExecute: ORA-06575: 程序包或函数 INSERT_UPDATE 处于无效状态 in d:\myweb\a\cost\include\compute.php on line 251
请问出现这种情况是一个什么错误,如果是存储过程的问题,请大家提示一下 该如何修改?下面是\a\cost\include\compute.php 中调用存储过程那部分代码,
$sql="call insert_update('".$path1."','".$path2."','".$path3."','".$path4."','".$path5."','".$path6."','".$path7."','".$path8."','".$path9."','".$path10."','".$path11."','".$path12."','".$path13."','".$path14."','".$path15."','".$path16."','".$path17."','".$path18."','".$path19."','".$path20."','".$path21."','".$path22."','".$path23."','".$path24."','".$path25."','".$path26."','".$path27."','".$path28."','".$path29."','".$path30."','".$path31."','".$path32."')";
$stmt = ociparse($conn,$sql);
if(!$stmt){echo "ERROR - Could not parse SQL statement."; exit;}
if(ociexecute($stmt)){ echo "<script>alert('操作成功!');</script>";
}else{
echo "<script>alert('操作失败!');</script>";
} 下面是oracle9i数据库中写的存储过程:
CREATE OR REPLACE PROCEDURE insert_update(
p_upcode in varchar2, --属装图号
p_upname in varchar2, --属装图名
p_ditem in number, --键号
p_dcode in varchar2, --图号
p_dname in varchar2, --图名
p_dmaterial in varchar2, --材料
p_dweight in number, --单重
p_dtweight in number, --总重
p_dquantity in number, --总数
p_dremark in varchar2, --备注
p_dother1 in varchar2, --工艺分工
p_productdwgcode in varchar2,--所属产品
p_g1 in varchar2,
p_g2 in varchar2,--领料单位
p_g3 in varchar2,
p_g4 in varchar2,
p_g5 in varchar2,
p_g6 in varchar2,
p_g7 in varchar2,
p_g8 in varchar2,
p_g9 in varchar2,
p_xialiao in varchar2, --下料尺寸
p_dinge in varchar2, --定额
p_lldw in varchar2, --领料单位
p_dmark in varchar2, --外购标记
p_invcost in number, --计划价
p_dinvcost in number, --计划总价
p_cinvcode in varchar2, --物料码
p_invunit in varchar2, --计量单位
p_yongyou in varchar2, --用友码
p_changerate in number--转化率
p_creator in varchar2, --创建人
p_createtime in date, --创建日期
p_modified in varchar2, --修改人
p_modifytime in date, --修改日期
)
as
num number;
begin
select count(*) into num from XTDETAMSALL_DETAIL_2 WHERE UPCODE=p_upcode and DITEM=p_ditem;
if num <>0 then
update XTDETAMSALL_DETAIL_2 set XIALIAO=p_xialiao,DINGE=p_dinge,LLDW=p_lldw,DMARK=p_dmark,INVCOST=p_invcost,DINVCOST=p_dinvcost,CINVCODE=p_cinvcode,INVUNIT=p_invunit,YONGYOU=p_yongyou,CHANGERATE=p_changerate,MODIFIED=p_modified,MODIFYTIME=sysdate where UPCODE=p_upcode and DITEM=p_ditem;
--UPCODE=p_upcode,UPNAME=p_upname,DITEM=p_ditem,DCODE=p_dcode,DNAME=p_dname,DMATERIAL=p_dmaterial,DWEIGHT=p_dweight,DTWEIGHT=p_dtweight,DQUANTITY=p_dquantity,DREMARK=p_dremark,DOTHER1=p_dother1,PRODUCTDWGCODE=p_productdwgcode,G1=p_g1,G2=p_g2,G3=p_g3,G4=p_g4,G5=p_g5,G6=p_g6,G7=p_g7,G8=p_g8,G9=p_g9,XIALIAO=p_xialiao,DINGE=p_dinge,LLDW=p_lldw,DMARK=p_dmark,INVCOST=p_invcost,DINVCOST=p_dinvcost,CINVCODE=p_cinvcode,INVUNIT=p_invunit,YONGYOU=p_yongyou,MODIFIED=p_modified,MODIFYTIME=sysdate;
else
insert into XTDETAMSALL_DETAIL_2(UPCODE,UPNAME,DITEM,DCODE,DNAME,DMATERIAL,DWEIGHT,DTWEIGHT,DQUANTITY,DREMARK,DOTHER1,PRODUCTDWGCODE,G1,G2,G3,G4,G5,G6,G7,G8,G9,XIALIAO,DINGE,LLDW,DMARK,INVCOST,DINVCOST,CINVCODE,INVUNIT,YONGYOU,CHANGERATE,CREATOR,CREATETIME)values(p_upcode,p_upname,p_ditem,p_dcode,p_dname,p_dmaterial,p_dweight,p_dtweight,p_dquwantity,p_dremark,p_dother1,p_productdwgcode,p_g1,p_g2,p_g3,p_g4,p_g5,p_g6,p_g7,p_g8,p_g9,p_xialiao,p_dinge,p_lldw,p_dmark,p_invcost,p_dinvcost,p_cinvcode,p_invunit,p_changerate,p_yongyou,p_creator);
end if;
commit ;
end insert_update;
...全文
相关推荐
oracle存储过程编译错误问题
NULL 博文链接:https://forlab.iteye.com/blog/1821751
DB2数据库创建存储过程时遇到的错误
本文将为大家介绍了DB2数据库创建存储过程时遇到的错误。
mysql存储过程之错误处理实例详解
主要介绍了mysql存储过程之错误处理,结合实例形式详细分析了mysql存储过程错误处理相关原理、操作技巧与注意事项,需要的朋友可以参考下
Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符
主要介绍了Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符的相关资料,需要的朋友可以参考下
sqlserver2008查看表记录或者修改存储过程出现目录名无效错误解决方法
登陆数据库后,右键打开表提示:目录名无效,执行SQL语句也提示有错误,现在把解决方法分享给大家


基础编程
