|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也就是说在php本地调用pdoprepare中的mysql_real_escape_string来操作query,使用的是本地单字节字符集,即编码为xbfx5cx27,并带入到mysql中查询,由于使用setnames设置了连接字符集.程序|成绩
记的前次写PL/SQL程序仍是刚卒业不久,还用的是Oracle7forNovell
厥后只是偶然用一下oralce,PL/SQL的一些语法已全忘了,
这不,碰着好些初级的成绩,服膺下,但愿不会再健忘。
1.有forupdate范例的Cursor
界说Cursor时,加了forupdate,由于必要翻开cursor后还要对这些数据举行修正和删除,
但在修正和删除数据后在封闭cursor前就commit,就呈现了上面的毛病:
ORA-01002:读取违背按次
ORA-06512:在"JWGL.PCKGSTUDSLTCOURSE",line62
ORA-06512:在line2
Error:ORA-06550:第2行,第0列:
PLS-00103:呈现标记"end-of-file"在必要以下之一时:
begincasedeclare
exitforgotoifloopmodnullpragmaraisereturnselect
updatewhilewith《anidentifier》
《adouble-quoteddelimited-identifier》《abindvariable》
closecurrentdeletefetchlockinsertopenrollback
savepointsetsqlexecutecommitforallmerge
《asingle-quotedSQLstring》pipe
刚入手下手还觉得是由于我嵌套select子句,而不克不及加forupdate。
厥后才发明是因我在修正删除数据即刻commit后,又即刻从cursor中fetch数据。
实在在翻开有forupdate的cursor时,体系会给掏出的数据加上排他锁(exclusive),
如许在这个锁开释前其他用户不克不及对这些纪录作update、delete和加锁。
而我一旦实行了commit,锁就开释了,游标也酿成有效的,再往fetch数据时就呈现毛病了。
因此要把commit放在轮回外,比及一切数据处置完成后再commit,然后封闭cursor.
2.怎样在一个工具范例的办法中对该工具的属性举行赋值
在一样平常情形下,挪用一个工具的办法时,工具本人SELF是以IN范例的参数传出来的,因而不克不及
对工具的属性举行修正不然会呈现上面的毛病。
Error:PLS-00363:表达式SELF不克不及用作赋值方针
Line:26
Text:setRoundNO(vSltCourseCalendar.getRoundNO());
Error:PL/SQL:Statementignored
Line:26
Text:setRoundNO(vSltCourseCalendar.getRoundNO());
TryingtocompileanobjectinOracle9i.
Whyisthisthrowinganexception?
Doesanyonehaveaclue?Orallofyouaspuzzledasme?Anyexperts?
Throwserror:
PLS-00363:expressionSELF.ATTRIB_NUMBERcannotbeusedasanassignmenttarget
但能够经由过程把SELF以INOUT体例传出来,然后在办法内就可以对工具属性举行赋值了。
MEMBERFUNCTIONTEST_FUNCTION(SELFINOUTTEST_OBJECT)RETURNNUMBER
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 |
|