【发布时间】:2022-01-12 20:43:46
【问题描述】:
我在解决这个问题时遇到了一些麻烦。
我必须检查表,如果有任何行超过 34 个字符的长度(为此,我使用 Lenght 命令使用查询的第一部分),如果找到,返回带有变量的错误“END_CNPJ$”(由查询“ENDERECO”的第二部分填充),因此用户可以看到哪一行的字符数超过 34 个。此代码是否正确(可能不正确)?如果不是,我该如何解决?
SELECT
LENGTH(CONCAT (CONCAT (CONCAT(CONCAT (CONCAT (CONCAT (CONCAT (
'', T.TTIPO_LOGR),
''), T.TENDERE),
''), T.NNRO_ENDER),
''),T.TCOMPL_ENDER) ),
T.TTIPO_LOGR || ' ' || T.TENDERE || ', ' || T.NNRO_ENDER || ' ' || T.TCOMPL_ENDER || ' - ' || TMUNICI || ' CNPJ: ' || T.NCGC AS ENDERECO
INTO CHARACTER_COUNT$, END_CNPJ$
FROM TBENDER T
WHERE T.CEMPRES = :ENDER_BLK.CEMPRES;
IF CHARACTER_COUNT$ > 34 THEN
MSG_ALERT_COSMO(' You exceeded 34 character for this address: ' || END_CNPJ$ );
RAISE FORM_TRIGGER_FAILURE;
END IF;
我希望我没有违反任何规则,昨天刚到这里 :D
TIA
【问题讨论】:
-
提示:使用
||进行连接。喜欢str1 || str2 || str3。 -
感谢@jarlh 的提示!我会在最终代码上做。
标签: sql oracle plsql oracle11g oracleforms