Sql查询未执行-显示无效标识符错误
我正在尝试执行以下sql语句,但它始终显示错误为Sql查询未执行-显示无效标识符错误,sql,oracle,Sql,Oracle,我正在尝试执行以下sql语句,但它始终显示错误为“NEW\T”。“NEW\u ORDER\u ID”:无效标识符 如何获取此“new\u order\u id”,因为我需要进一步加入它。从派生列名中删除双引号,或者在select子句中使用双引号 with ticket_orders AS( select REGEXP_SUBSTR(st.ORDER_ID, '\d{3}-\d{7}-\d{7}') "new_order_id" from (select REGEXP_SUBSTR
“NEW\T”。“NEW\u ORDER\u ID”:无效标识符
如何获取此“
new\u order\u id
”,因为我需要进一步加入它。从派生列名中删除双引号,或者在select子句中使用双引号
with ticket_orders AS(
select REGEXP_SUBSTR(st.ORDER_ID, '\d{3}-\d{7}-\d{7}') "new_order_id"
from
(select
REGEXP_SUBSTR(details, 'Order\s+ID(\s*\(s\))?:\s*\d{3}-\d{7}-\d{7}') AS "ORDER_ID"
from o_remedy ort
) st)
select new_t.new_order_id from ticket_orders new_t;
默认情况下,Oracle会将每个对象名称转换为大写,除非您在双引号中指定它。因此,“新订单id”
将不会转换为大写,但在选择新订单时,新订单id
将转换为不存在的大写
若要解决此问题,请从派生列名中删除双引号,或者在select子句中也使用双引号
with ticket_orders AS(
select REGEXP_SUBSTR(st.ORDER_ID, '\d{3}-\d{7}-\d{7}') "new_order_id"
from
(select
REGEXP_SUBSTR(details, 'Order\s+ID(\s*\(s\))?:\s*\d{3}-\d{7}-\d{7}') AS "ORDER_ID"
from o_remedy ort
) st)
select new_t.new_order_id from ticket_orders new_t;
我在本地机器上复制了它
这是行不通的
select new_t."new_order_id" from ticket_orders new_t;
with tbl as
(select empno "new_emp_no" from emp)
select t.new_emp_no From tbl t
并给予
ORA-00904:“T”。“新环境管理号”:无效标识符
90400000-%s:无效标识符
*原因:*操作:第116行第10列出错 但这是可行的
您不是指“前面的SQL语句”吗?您正在选择
t.new\u order\u id
,但错误显示为“new\u t”。“new\u order\u id”
?NEW\u T
来自哪里?很抱歉,我打错了,它是NEW\u Tonly@toonice你说的“前面的SQL语句”是什么意思?你说的“后面的SQL语句”是关于一个在那句话之前的SQL语句。“在前”是正确的。
WITH ticket_orders AS
(
SELECT
REGEXP_SUBSTR(st.ORDER_ID, '\d{3}-\d{7}-\d{7}') new_order_id
FROM
(
SELECT
REGEXP_SUBSTR(details, 'Order\s+ID(\s*\(s\))?:\s*\d{3}-\d{7}-\d{7}') AS ORDER_ID
FROM o_remedy ort
) st
)
SELECT new_t.new_order_id FROM ticket_orders new_t;