qq858970191 2018-11-02 09:30 采纳率: 0%
浏览 538
已结题

打开游标报缺失右括号,麻烦大神看下。

1、执行语句如下:
v_sql :='select coalesce(datetime,''''zwbnull''''),
coalesce(seqno,''''zwbnull''''),
coalesce(interface_name,''''zwbnull''''),
coalesce(soure_from,''''zwbnull''''),
coalesce(req_time,''''zwbnull''''),
coalesce(rsp_time,''''zwbnull''''),
coalesce(cost_time,''''zwbnull''''),
coalesce(v_interface_result,''''zwbnull''''),
coalesce(Cbip_Id,''''zwbnull'''')
from (select substr(tp.data, 1, instr(tp.data,''''|'''', 1, 1) - 1) datetime,
substr(tp.data,
instr(tp.data,''''|'''', 1, 1) + 1,
instr(tp.data,''''|'''', 1, 2) -
instr(tp.data,''''|'''', 1, 1) - 1) seqno,
substr(tp.data,
instr(tp.data,''''|'''', 1, 4) + 1,
instr(tp.data,''''|'''', 1, 5) -
instr(tp.data,''''|'''', 1, 4) - 1) interface_name,
substr(tp.data,
instr(tp.data,''''|'''', 1, 6) + 1,
instr(tp.data,''''|'''', 1, 7) -
instr(tp.data,''''|'''', 1, 6) - 1) soure_from,
substr(tp.data,
instr(tp.data,''''|'''', 1, 7) + 1,
instr(tp.data,''''|'''', 1, 8) -
instr(tp.data,''''|'''', 1, 7) - 1) req_time,
substr(tp.data,
instr(tp.data,''''|'''', 1, 8) + 1,
instr(tp.data,''''|'''', 1, 9) -
instr(tp.data,''''|'''', 1, 8) - 1) rsp_time,
substr(tp.data,
instr(tp.data,''''|'''', 1, 9) + 1,
instr(tp.data,''''|'''', 1, 10) -
instr(tp.data,''''|'''', 1, 9) - 1) cost_time,
substr(tp.data,
instr(tp.data,''''|'''', 1, 10) + 1,
instr(tp.data,''''|'''', 1, 11) -
instr(tp.data,''''|'''', 1, 10) - 1) interface_result,
tp.cbip_id Cbip_Id
from t_zwb_cbip_northTraceSmry_tp tp
where regexp_like(substr(tp.data,
instr(tp.data,''''|'''', 1, 9) + 1,
instr(tp.data,''''|'''', 1, 10) -
instr(tp.data,''''|'''', 1, 9) - 1),
''''^ [ [ :digit :] ] +.{0,1} [ [ :digit :] ] * $'''')
and lengthb(substr(tp.data,
instr(tp.data,''''|'''', 1, 9) + 1,
instr(tp.data,''''|'''', 1, 10) -
instr(tp.data,''''|'''', 1, 9) - 1)) < 10

    )';

             open v_ref_cursor for v_sql ;   --打开游标报错  执行时报ora-00907:缺失又括号





    2、如果直接执行sql语句没报错:
         select substr(tp.data, 1, instr(tp.data, '|', 1, 1) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 1) + 1,
          instr(tp.data, '|', 1, 2) - instr(tp.data, '|', 1, 1) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 4) + 1,
          instr(tp.data, '|', 1, 5) - instr(tp.data, '|', 1, 4) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 6) + 1,
          instr(tp.data, '|', 1, 7) - instr(tp.data, '|', 1, 6) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 7) + 1,
          instr(tp.data, '|', 1, 8) - instr(tp.data, '|', 1, 7) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 8) + 1,
          instr(tp.data, '|', 1, 9) - instr(tp.data, '|', 1, 8) - 1),
   substr(tp.data,
          instr(tp.data, '|', 1, 9) + 1,
          instr(tp.data, '|', 1, 10) - instr(tp.data, '|', 1, 9) - 1),
     substr(tp.data,
          instr(tp.data, '|', 1, 10) + 1,
          instr(tp.data, '|', 1, 11) - instr(tp.data, '|', 1, 10) - 1),
          tp.cbip_id

from t_zwb_cbip_northTraceSmry_tp tp
where
regexp_like( substr(tp.data,
instr(tp.data, '|', 1, 9) + 1,
instr(tp.data, '|', 1, 10) - instr(tp.data, '|', 1, 9) - 1),'^[[:digit:]]+.{0,1}[[:digit:]]*$') --costime过滤掉非数值

               and
          lengthb(
          substr(tp.data,
          instr(tp.data, '|', 1, 9) + 1,
          instr(tp.data, '|', 1, 10) - instr(tp.data, '|', 1, 9) - 1) ) < 10
  • 写回答

1条回答 默认 最新

  • devmiao 2018-11-02 12:46
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘