hur.cn - 华软网

 热门搜索

在PB中如何编译Oracle存储过程(解决给分)

  作者:未知    来源:网络    更新时间:2019/4/16
存储进程已经动态创建,但提醒未通过编译。
如何在PB里面临存储进程编译?
------华软网友回答------
在 PB 里编译 store procedure ???


------华软网友回复------
是。执行后,SQLCODE = -1 ,SQLERRTEXT: [ORA-24344: 成功,但出现编译毛病]

------华软网友回复------
有没有人会啊,如果解决了。我再给200分,OK?
------华软网友回复------
我想你就是再一万分也没人解决。PB 要是能够编译存储进程,那人家数据库厂商还活不活?

你应该把你的存储进程拿到数据库工具如 SQL server 的查询分析器,Oracle 的SQLPlus或PL/SQL之类的工具里去编译。
------华软网友回复------
在oracle中正当的语法,被pb解析成自己的了,结果,就乱了,告诉你成功,但毛病,结果是没成功。所以,别在pb里面编译了。
------华软网友回复------
Oracle 应该有命令重新编译存储进程吧?
我直接调用这个命令执行一下不就能够了?
------华软网友回复------
我需要在PB里面临存储进程举行维护,没措施啦
------华软网友回复------
执行后加个commit能够吗?
------华软网友回复------
不行。
Oracle没有这样的命令吗?
我觉得是否是还跟字符集有关啊。以前用另外一个字符集好像就没有问题。
------华软网友回复------
能够的:方法是用动态SQL
string ls_sql
ls_sql = 'alter package p_get_svrtime compile'
EXECUTE IMMEDIATE :ls_sql; 
if sqlca.sqlcode = 0 then
   //编译成功
else
   //编译失利
end if
------华软网友回复------
记得加分啊,楼主。
------华软网友回复------
在pb中,按名称编译,那就alter procedure name compile
------华软网友回复------
不行啊.
我就是在PB里编译,提醒毛病为 [成功,但编译失利],创建的时候也是这么提醒.
现在用的字符集是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
之前的字符是AMERICAN_AMERICA.US7ASCII,在创建时就编译好了
------华软网友回复------
装个Pl/sql dev好了
------华软网友回复------
不行.这个是用来对存储进程举行维护的.
里面的SQL在后台通过中间层解析,然后直接创建的.
要是再装一个SQL,预计客户会疯的
------华软网友回复------
自己搞定了,惋惜没人解决.200分就不放了.
系统权限问题,登陆用户没有分配足够的权限
------华软网友回复------
照旧不行.
最终解决方案:
数据库里面创建1个存储进程,参数即要创建的语法.
通过存储进程创建存储进程
OK.

------华软网友回复------
大哥,我也在弄这个呢,我是存储进程创建存储进程呀,
为什么照旧“成功,但编译有毛病”呀,能够明白的教教我么。
我邮箱lvzf@cape.com.cn,大哥,帮帮助吧!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。