社区
数据库相关
帖子详情
ora00907 缺少右括号的问题,pl/sql没问题,delphi调用出错
fly_mouse
2007-11-29 11:42:27
写了一个存储过程,主要是一个sql语句,返回一个数据集,这个sql语句,有4000多个字符,不过在pl/sql中test完全没有问题,从delphi中调用就出现这个问题,可能是什么原因呢。
不是order by 的原因,去掉order by 结果一样报错。
谢谢。
代码太长了,贴出来也太乱,大家看看以前遇到过类似错误没有,怎么处理的,非常感谢!
...全文
114
3
打赏
收藏
ora00907 缺少右括号的问题,pl/sql没问题,delphi调用出错
写了一个存储过程,主要是一个sql语句,返回一个数据集,这个sql语句,有4000多个字符,不过在pl/sql中test完全没有问题,从delphi中调用就出现这个问题,可能是什么原因呢。 不是order by 的原因,去掉order by 结果一样报错。 谢谢。 代码太长了,贴出来也太乱,大家看看以前遇到过类似错误没有,怎么处理的,非常感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fly_mouse
2007-11-29
打赏
举报
回复
问题已经解决,是参数传递的问题
大家有没有别的办法,我想获得一个数据集,从存储过程返回
但是别让这个类似这个例子中mysql太长?
太长不容易调试,找不到原因。呵呵
谢谢大家
fly_mouse
2007-11-29
打赏
举报
回复
就是在存储过程中写的,然后调用的存储过程,难道是参数传递问题?
贴出一部分,大家帮我看看。
CREATE OR REPLACE PROCEDURE test_get_cir_by_fiber_seg(
i_system_id IN Varchar2,
i_Startdate In Varchar2,
i_enddate In Varchar2,
cr Out custom_type.ct
)
As
mysql Varchar2(5000);
Begin
mysql:=
'select '||
'q.circuit_no 电路名称, '||
'k.sysshape 系统形状, '||
'q.nettype 网络类型, '||
'c.customer_name 客户名称, '||
'q.cir_level 电路等级, '||
'q.business_type 业务类型, '||
'q.CUSTRANGE_NAME 客户等级, '||
'v.start_date 重保起始时间, '||
'v.end_date 重保结束时间, '||
'substr(get_simpcircuitroute(q.circuit_no),1,256) 简单路由, '||
'substr(get_allcircuitroute(q.circuit_no),1,1024) 详细路由, '||
'q.circuit_id '||
'From '||
's_customer c, '||
't_circuit q ,'||
't_circuit_route p, '||
。。。。。。。
'Where c.customer_no(+)=q.customer And q.circuit_id=p.circuit_id and q.circuit_id=v.circuit_id (+) and p.parent_id=k.obj_id '||
' AND p.parent_type = k.obj_type And p.Parent_type<>''打散时隙''';
Open cr For mysql;
END;
调用:
storedProcName:='';
StoredProcName:='TEST_GET_CIR_BY_FIBER_SEG';
params.Clear;
P1:=Tparam.Create(Params, ptInput);
P3:=Tparam.Create(Params, ptInput);
P4:=Tparam.Create(Params, ptInput);
P2:=Tparam.Create(Params, ptOutput);
params[0].Name:='i_system_id';
params[0].DataType:=ftInteger;
params[1].Name:='cr';
params[1].DataType:=ftCursor;
params[2].Name:='i_Startdate';
params[2].DataType:=ftstring;
params[3].Name:='i_enddate';
params[3].DataType:=ftstring;
parambyname('i_system_id').AsInteger:=segmentid;
parambyname('i_Startdate').Asstring:=dateTimeTostr(now);
parambyname('i_enddate').Asstring:=dateTimeTostr(now);
prepare;
open;
执行到open时报错
谢谢
hongqi162
2007-11-29
打赏
举报
回复
封装成存储过程然后调用应该就好了
PL
/
SQL
设置
在使用
PL
/
SQL
Developer时, 为了工作方便希望
PL
/
SQL
Developer记住登录Oracle的用户名和密码; 设置方法:
PL
/
SQL
Developer->tools->Preferences->Oracle->Logon History, 在
右
边界面的"Definition"中,"Store...
PL
/
SQL
dev使用指南
1、通过
pl
/
sql
dev查看当前会话情况: 2、查看数据库的语言参数
pl
/
sql
使用技巧
1.
PL
/
SQL
Developer记住登陆密码 在使用
PL
/
SQL
Developer时, 为了工作方便希望
PL
/
SQL
... 设置方法:
PL
/
SQL
Developer->Configure->Preferences->Oracle->Logon History, 在
右
边界面的"Definition"中,"S...
pl
/
sql
developer常用设置
在使用
PL
/
SQL
Developer时, 为了工作方便希望
PL
/
SQL
Developer记住登录Oracle的用户名和密码; 设置方法:
PL
/
SQL
Developer->tools->Preferences->Oracle->Logon History, 在
右
边界面的"Definition"中,...
pl
/
sql
developer 22个常用设置
在使用
PL
/
SQL
Developer时, 为了工作方便希望
PL
/
SQL
Developer记住登录Oracle的用户名和密码; 设置方法:
PL
/
SQL
Developer->tools->Preferences->Oracle->Logon History, 在
右
边界面的"Definition"中,...
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章