【发布时间】:2021-10-30 04:26:43
【问题描述】:
试图找出我收到 Teradata 异常的原因:[Teradata Database] [3707] 语法错误,需要名称或 Unicode 分隔标识符或 ')' 和之间的 'UDFCALLNAME' 关键字
select ma.MHKAUDITLOGINTERNALID as id,
cast(MHK_CONTENT as varchar (8000)) as MHK_CONTENT,
AUDITDATETIME, CREATEDBY, MHKAPPEALSINTERNALID, MHKIREINTERNALID
from vcoreMEDHOK_MHK_Audit as ma
Where ma.AUDITDATETIME >= DATE '2021-08-01'
and ma.MHKAPPEALSINTERNALID Is NOT NULL
or ma.AUDITDATETIME >= DATE '2021-08-01'
and ma.MHKAPPEALSINTERNALID <> ' '
or ma.AUDITDATETIME >= DATE '2021-08-01'
and ma.MHKAPPEALSINTERNALID <> ' - ' )
select dt.id, TokenNum,regexp_replace(MHK_CONTENT, '<b>|</b>') as NewContent--- |<\/b> --- ADT, MHKAPPEALSINTERNALID,MHKIREINTERNALID ,CreatedBy,AUDITDATETIME, CREATEDBY, MHKAPPEALSINTERNALID, MHKIREINTERNALID, --- oreplace (Token,'<BR>','')
FROM TABLE (RegExp_Split_To_Table(t.id, t.MHK_CONTENT, '<br/>*', 'i')) --- split whenever '<BR/>' occurs t.TokenNum, t.MHK_CONTENT, t.ADT, t.MHKAPPEALSINTERNALID,t.MHKIREINTERNALID,t.CreatedBy, ---'<b>|<\/b>|<BR>|</BR>|<br/>| - *', 'i' --- '<b>|<\/b>|<br/>|<BR>|</BR>*', 'i')
RETURNS (id BIGINT, TokenNum INT, MHK_CONTENT VARCHAR(8000), CreatedBy VARCHAR(100)))))as dt ```
【问题讨论】:
-
检查不匹配的括号。
-
你有 8 个开括号和 12 个闭括号,忽略 cmets
-
你的 SQL 客户端是什么? Studio 将在输入时指示语法错误,左侧有一个红色 x 和一条解析器卡住的红色虚线。 SQL 助手也显示虚线,但前提是您使用 .NET 连接并尝试运行它。解析器在第二次选择之前抱怨关闭 ) 。您有两个 Select,其中一个必须包含在 Dervied Table 或 CTE 中。
-
我试图让一位同事帮助我,我记得那天没有 sql server studio 或者它是 redgate,它已经一分钟了。我正在使用 TOAD 5.2.0.276(64 位)
-
也许您确实有两个单独的查询,并且您想要在第二个选择之前使用分号?我认为您在第二次选择之前仍然有一个额外的接近的括号。
标签: syntax-error teradata