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 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
封装成存储过程然后调用应该就好了

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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