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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器