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 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建