gpt4 book ai didi

sql - 从 dual 中选择的 where 子句 PL/SQL 查询出错

转载 作者:行者123 更新时间:2023-12-02 04:42:42 29 4
gpt4 key购买 nike

我正在做以下查询,

SELECT 'Payment Token,Transaction ID,Create Date' 
FROM dual
UNION ALL
SELECT DISTINCT
pt.mw_payment_token ||','||
t.mw_transaction_id ||','||
t.create_date
FROM t_mw_payment_token pt,
t_mw_transaction t
where pt.mw_payment_token = t.mw_payment_token
order by t.mw_transaction_id;

错误是:

ORA-00904: "T"."MW_TRANSACTION_ID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 5 Column: 103

为什么 mw_transaction_id 列无效?

编辑:

t_mw_transaction 表

ENABLECREATE TABLE WFMW.T_MW_TRANSACTION 
(
MW_PAYMENT_TOKEN VARCHAR2(40 BYTE) NOT NULL,
CREATE_DATE DATE DEFAULT NULL,
MW_TRANSACTION_ID NUMBER NOT NULL,
TRANSACTION_TYPE NUMBER(*, 0),
CONSTRAINT XPK_T_MW_TRANSACTION PRIMARY KEY
(
MW_TRANSACTION_ID
)
ENABLE
)

mw_payment_token 表

ENABLECREATE TABLE WFMW.T_MW_PAYMENT_TOKEN 
(
MW_PAYMENT_TOKEN VARCHAR2(40 BYTE) NOT NULL
, CREATED_BY VARCHAR2(50 BYTE)
, MODIFIED_BY VARCHAR2(50 BYTE)
, CREATE_DATE DATE
, MODIFIED_DATE DATE
, TOKENIZED_PAN VARCHAR2(20 BYTE)
, CONSTRAINT XPKT_MW_PAYMENT_TOKEN PRIMARY KEY
(
MW_PAYMENT_TOKEN
)
ENABLE
)

最佳答案

您的问题是 ORDER BY 子句,因为它在整个查询中是全局的,并且在整个语句中无法识别 t.mw_transaction_id
与以下相同的问题:

select 'a' from dual 
union all
select dummy from dual
order by dummy;

您可以通过为两个查询中的列提供相同的别名来解决此问题:

select 'a' some_col from dual 
union all
select dummy some_col from dual
order by some_col;

但我不认为这是你想要实现的目标。

编辑:
我不确定您想通过查询实现什么,但也许这会为您提供所需的结果:

SELECT DISTINCT 
pt.mw_payment_token "Payment Token",
t.mw_transaction_id "Transaction ID",
t.create_date "Create Date"
FROM t_mw_payment_token pt,
t_mw_transaction t
where pt.mw_payment_token = t.mw_payment_token
order by "Transaction ID";

编辑2:
如果你想要你的输出为 CSV,也许检查 hereherehere .也许考虑在这里问另一个关于 SO 的问题。
我的建议是使用 UTL_FILE 包迭代基于我第一次编辑的游标。但到目前为止我还没有尝试过。

关于sql - 从 dual 中选择的 where 子句 PL/SQL 查询出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20474485/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com