Oracle 数据库表字段截取更新

       更新某张表,某个字段的长度,然后赋值给另一个字段。

  update SOSPNPOBUSINESSMATCH set govpsCode = SUBSTR (govpsCode, 1, INSTR (govpsCode, 'CK', 1, 1) - 1) WHERE ID=26
  • substr 函数:截取字符串

  • 语法:SUBSTR(string,start, [length])

    string:表示源字符串,即要截取的字符串。

    start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。

    length:可选项,表示截取字符串长度。

  • instr 函数:返回子字符串在源字符串中的位置

    语法:INSTR(string,child_string,[start],[show_time])

    string:表示源字符串。

    child_string:子字符串,即要查找的字符串。

    start:可选项,开始位置,默认从1开始。如果为负数,则从右向左检索。

    show_time:可选项,表示子字符串第几次出现在源字符串当中,默认第1次,负数则报错。

  • 致于为什么要减1呢?
  • 是因为截取源字符串,从1开始到获取(第一个'CK'出现位置)进行字符串截取,如果不减去1的话,这其中也包含C这个位置的字符,再减去1即可得到不包含‘CK’的字符串。
原文地址:https://www.cnblogs.com/chendezhen/p/14821065.html