INSERT INTO FCR.TRANSACTION (TRX_UNIT, TRX_DATE, TRX_USR,
TRX_USR_SN, TRANSACTION_CODE,
PRODUCT_CODE, CURRENCY_SHORT_DESCRIPTION,
AMOUNT_FC, EXCHANGE_RATE, AMOUNT_DC)
SELECT SOURCE_SYSTEM_CHANNEL_CODE, to_char(TRANSACTION_DATE), 'dd/mm/yyyy'),
USER_CODE, USER_TRANSACTION_SERIAL_NUMBER, TRANSACTION_CODE,
PROFITS_PRODUCT_CODE, SHORT_DESCRIPTION, SOURCE_AMOUNT_FC,
SOURCE_EXCHANGE_RATE, SOURCE_AMOUNT_EUR
FROM FCR.ORION_FCR_TRANSACTION
WHERE TRANSACTION_DATE = 'to_char(" + date + ", 'dd/mm/yyyy')'上面的查询给出了ORA-00923 ERROR. FROM KEYWORD NOT FOUND IN POSITION.
有没有人能帮我解决上面的问题。
我认为这个错误与我的C#代码中的代码行有关:
WHERE TRANSACTION_DATE = 'to_char(" + date + ", 'dd/mm/yyyy')'发布于 2011-08-09 18:46:15
这是因为TRANSACTION_DATE后面的右括号。
而且,将to_char放在字符串中的WHERE中也没有任何帮助。:)
我不确定,但如果你使用一些小的缩进可能会有帮助。如果你的查询以一种更易读的方式勾勒出来,就更容易发现像这样的拼写错误。
INSERT INTO FCR.TRANSACTION (
TRX_UNIT,
TRX_DATE,
TRX_USR,
TRX_USR_SN,
TRANSACTION_CODE,
PRODUCT_CODE,
CURRENCY_SHORT_DESCRIPTION,
AMOUNT_FC,
EXCHANGE_RATE,
AMOUNT_DC)
SELECT
SOURCE_SYSTEM_CHANNEL_CODE,
to_char(TRANSACTION_DATE), 'dd/mm/yyyy'),
USER_CODE,
USER_TRANSACTION_SERIAL_NUMBER,
TRANSACTION_CODE,
PROFITS_PRODUCT_CODE,
SHORT_DESCRIPTION,
SOURCE_AMOUNT_FC,
SOURCE_EXCHANGE_RATE,
SOURCE_AMOUNT_EUR
FROM
FCR.ORION_FCR_TRANSACTION
WHERE
TRANSACTION_DATE = 'to_char(" + date + ", 'dd/mm/yyyy')'发布于 2011-08-09 18:46:30
我猜是这样的:
to_char(TRANSACTION_DATE), 'dd/mm/yyyy'), 应该是这样:
to_char(TRANSACTION_DATE, 'dd/mm/yyyy'), 还有这个:
WHERE TRANSACTION_DATE = 'to_char(" + date + ", 'dd/mm/yyyy')'应该是这样:
WHERE TRANSACTION_DATE = to_char(date, 'dd/mm/yyyy')'发布于 2011-08-09 18:48:10
在格式化以使其更清楚之后,看起来您已在选择部分中添加了a)
你有SELECT SOURCE_SYSTEM_CHANNEL_CODE, to_char(TRANSACTION_DATE), 'dd/mm/yyyy'),
我认为您在TRANSACTION_DATE之后为to_char添加了额外的结束支架,可能是
SELECT SOURCE_SYSTEM_CHANNEL_CODE, to_char(TRANSACTION_DATE, 'dd/mm/yyyy'),它有助于清晰地格式化代码,并使用与括号匹配的编辑器。
https://stackoverflow.com/questions/6994890
复制相似问题