如何使用REGEXP_REPLACE从函数中删除参数?

时间:2018-05-25 10:12:28

标签: oracle replace plsql parameters regexp-replace

  
    
      
        

Image Here

      
    
  

我有一个存储C#代码的列,如何删除" FunctionA"的最后3个参数?请注意,该列包含多个函数,但我只需要替换" FunctionA"使用PL / SQL,我知道REGEXP_REPLACE可能会做到这一点,但我似乎无法找到匹配/替换它的方法。

之前:

Test=FunctionA(varID, 1234,"", A.B,"","","last");

Test=FunctionA(varID, 9876,"", C.D);

Test=FunctionB(varID, 5555,"", E.F,"","","last");

后:

Test=FunctionA(varID, 1234,"", A.B);

Test=FunctionA(varID, 9876,"", C.D);< - 不应影响此

Test=FunctionB(varID, 5555,"", E.F,"","","last");< - 不应影响此

1 个答案:

答案 0 :(得分:1)

尝试找到这种模式:

[
  {
    "name": 2017,
    "children": [
      {"name": "01-2017", "id": 11},
      {"name": "02-2017", "id": 12},
      {"name": "03-2017", "id": 13},
      {"name": "04-2017", "id": 14},
      {"name": "05-2017", "id": 15}
    ]
  },
  {
    "name": 2018,
    "children": [
      {"name": "01-2018", "id": 6},
      {"name": "02-2018", "id": 7},
      {"name": "03-2018", "id": 8},
      {"name": "04-2018", "id": 9},
      {"name": "05-2018", "id": 10}
    ]
  }
]

然后只用(,[^,]*,[^,]*,[^,]*\);)$ 替换。以下是一个示例查询:

);

viewBox

编辑:我添加了一个SELECT REGEXP_REPLACE ('Test=FunctionA(varID, 1234,"", A.B,"","","last");', '(,[^,]*,[^,]*,[^,]*\);)$', ');') AS output FROM dual WHERE col LIKE 'Test=FunctionA(%' Test=FunctionA(varID, 1234,"", A.B); 子句来检查函数名称。