Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替代SQL中的空值的子字符串_Sql_String_Oracle_Sql Update_Substring - Fatal编程技术网

替代SQL中的空值的子字符串

替代SQL中的空值的子字符串,sql,string,oracle,sql-update,substring,Sql,String,Oracle,Sql Update,Substring,我在Oracle SQL中有一个update语句,在第9个字节的MISC_标志后连接N UPDATE SYS_CODE SET MISC_FLAGS = SUBSTR(MISC_FLAGS, 1, 9) || 'N', mod_date_time = sysdate, user_id = 'Feature Number' WHERE REC_TYPE = 'X' AND CODE_TYPE = 'XXX' AND CODE_ID = 'XXXX'; 但在某

我在Oracle SQL中有一个update语句,在第9个字节的MISC_标志后连接N

UPDATE SYS_CODE 
SET MISC_FLAGS = SUBSTR(MISC_FLAGS, 1, 9) || 'N', 
    mod_date_time = sysdate, 
    user_id = 'Feature Number'  
WHERE REC_TYPE = 'X' 
  AND CODE_TYPE = 'XXX' 
  AND CODE_ID = 'XXXX';
但在某些情况下,我们将Misc标志中的示例8和9字节设置为null。在这些情况下子串不考虑第八和第九字节,更新第八字节到n而不是第十。
有人有其他选择吗?

我想你想要
RPAD()

如果
MISC_FLAGS
少于9个字符,则会向其添加空白字符。

您可以使用
RPAD()
。例如:

UPDATE SYS_CODE SET
  MISC_FLAGS = RPAD(SUBSTR(MISC_FLAGS,1,9), 9, ' ') || 'N', 
  mod_date_time = sysdate, 
  user_id = 'Feature Number'  
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';

我觉得下面的RPAD-->SUBSTR组合一定会对您有所帮助

这是一份感谢你帮助的信

UPDATE SYS_CODE SET
  MISC_FLAGS = SUBSTR(RPAD(MISC_FLAGS, 9, '0'),1,9)|| 'N', 
  mod_date_time = sysdate, 
  user_id = 'Feature Number'  
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';

然后你应该考虑并告诉我们在第八和第九的位置你想要什么样的角色。
UPDATE SYS_CODE SET
  MISC_FLAGS = SUBSTR(RPAD(MISC_FLAGS, 9, '0'),1,9)|| 'N', 
  mod_date_time = sysdate, 
  user_id = 'Feature Number'  
WHERE REC_TYPE = 'X' AND CODE_TYPE= 'XXX' AND CODE_ID = 'XXXX';