有人可以帮忙解释我在执行以下声明时遇到的错误:
从命令的第1行开始出错: `
CREATE OR REPLACE FORCE VIEW "PRODILMOWNER"."ZV_LPEUR_I" ("MANDT","BALANCETYPE", "BRANCH", "CURRENCY", "AMOUNT", "COUNTERPARTY", "COUNTERPARTY_PARENT", "AMOUNT_EUR","DESCRIPTION")
AS
SELECT a.balancetype,
a.branch,
a.currency,
cast a.amount as number (25,2),
a.counterparty,
a.counterparty_parent,
a.mandt,
a.description,
(a.amount*
(SELECT c.midspot
FROM ZV_EXCHANGERATES c
WHERE c.currency =a.currency
AND c.valuedate =TO_CHAR(sysdate,'YYYY/MM/DD')
AND a.valuedate = TO_CHAR(sysdate,'DD-MMM-YY')
) ) AS cast amount_eur as number (25,2),
FROM ZT_LP a
命令行出错:1列:0 错误报告: SQL错误:无法从套接字读取数据
答案 0 :(得分:2)
您可能有其他错误,但表达cast
的正确方法是:
cast(a.amount as number(25, 2)) as amount,
请注意括号和列别名。
答案 1 :(得分:0)
如果您尝试按以下方式创建视图:
CREATE OR REPLACE FORCE VIEW "PRODILMOWNER"."ZV_LPEUR_I" ("MANDT","BALANCETYPE", "BRANCH", "CURRENCY", "AMOUNT", "COUNTERPARTY", "COUNTERPARTY_PARENT", "AMOUNT_EUR","DESCRIPTION")
AS
SELECT a.balancetype,
a.branch,
a.currency,
cast(a.amount as number(25, 2)) as amount, --cast a.amount as number (25,2),
a.counterparty,
a.counterparty_parent,
a.mandt,
a.description,
a.amount*
(SELECT cast(c.midspot as number(25, 2))
FROM ZV_EXCHANGERATES c
WHERE c.currency =a.currency
AND c.valuedate =TO_CHAR(sysdate,'YYYY/MM/DD')
AND a.valuedate = TO_CHAR(sysdate,'DD-MMM-YY')
) AS amount_eur -- cast amount_eur as number (25,2) --,
FROM ZT_LP a;
删除破折号(--
)旁边的部分,然后没有问题。
,
子句FROM