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

polestarxu 2006-11-16 02:24:14
存储过程已经动态创建,但提示未通过编译。
如何在PB里面对存储过程编译?
...全文
382 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
nongminlv 2007-01-31
  • 打赏
  • 举报
回复
大哥,我也在弄这个呢,我是存储过程创建存储过程呀,
为什么还是“成功,但编译有错误”呀,能够明白的教教我么。
我邮箱lvzf@cape.com.cn,大哥,帮帮忙吧!
polestarxu 2006-11-17
  • 打赏
  • 举报
回复
还是不行.
最终解决方案:
在数据库里面创建1个存储过程,参数即要创建的语法.
通过存储过程创建存储过程
OK.
polestarxu 2006-11-17
  • 打赏
  • 举报
回复
自己搞定了,可惜没人解决.200分就不放了.
系统权限问题,登陆用户没有分配足够的权限
polestarxu 2006-11-17
  • 打赏
  • 举报
回复
不行.这个是用来对存储过程进行维护的.
里面的SQL在后台通过中间层解析,然后直接创建的.
要是再装一个SQL,估计客户会疯的
dotnba 2006-11-17
  • 打赏
  • 举报
回复
装个Pl/sql dev好了
polestarxu 2006-11-17
  • 打赏
  • 举报
回复
不行啊.
我就是在PB里编译,提示错误为 [成功,但编译失败],创建的时候也是这么提示.
现在用的字符集是SIMPLIFIED CHINESE_CHINA.ZHS16GBK
之前的字符是AMERICAN_AMERICA.US7ASCII,在创建时就编译好了
jdsnhan 2006-11-17
  • 打赏
  • 举报
回复
在pb中,按名称编译,那就alter procedure name compile
ppmht 2006-11-17
  • 打赏
  • 举报
回复
记得加分啊,楼主。
ppmht 2006-11-17
  • 打赏
  • 举报
回复
可以的:方法是用动态SQL
string ls_sql
ls_sql = 'alter package p_get_svrtime compile'
EXECUTE IMMEDIATE :ls_sql;
if sqlca.sqlcode = 0 then
//编译成功
else
//编译失败
end if
polestarxu 2006-11-16
  • 打赏
  • 举报
回复
不行。
Oracle没有这样的命令吗?
我觉得是不是还跟字符集有关啊。以前用另外一个字符集好像就没有问题。
sara11 2006-11-16
  • 打赏
  • 举报
回复
执行后加个commit可以吗?
polestarxu 2006-11-16
  • 打赏
  • 举报
回复
我需要在PB里面对存储过程进行维护,没办法啦
polestarxu 2006-11-16
  • 打赏
  • 举报
回复
Oracle 应该有命令重新编译存储过程吧?
我直接调用这个命令执行一下不就可以了?
jdsnhan 2006-11-16
  • 打赏
  • 举报
回复
在oracle中合法的语法,被pb解析成自己的了,结果,就乱了,告诉你成功,但错误,结果是没成功。所以,别在pb里面编译了。
iamx 2006-11-16
  • 打赏
  • 举报
回复
我想你就是再一万分也没人解决。PB 要是可以编译存储过程,那人家数据库厂商还活不活?

你应该把你的存储过程拿到数据库的工具如 SQL server 的查询分析器,Oracle 的SQLPlus或者PL/SQL之类的工具里去编译。
polestarxu 2006-11-16
  • 打赏
  • 举报
回复
有没有人会啊,如果解决了。我再给200分,OK?
polestarxu 2006-11-16
  • 打赏
  • 举报
回复
是。执行后,SQLCODE = -1 ,SQLERRTEXT: [ORA-24344: 成功,但出现编译错误]
jackxrh 2006-11-16
  • 打赏
  • 举报
回复
在 PB 里编译 store procedure ???

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧