ORA-00904:"MAY":INVALID IDENTIFIER

mik*_*eri 3 sql oracle oracle10g

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_TRANSACTION 
WHERE    
TRANSACTION_DATE = to_char(02-MAY-2006, 'dd/mm/yyyy')
Run Code Online (Sandbox Code Playgroud)

以上是我在ORACLE中输入的查询,但是它给了我错误ORA-00904:"MAY":INVALID IDENTIFIER任何人都可以帮我这个.谢谢

APC*_*APC 6

如果TRANSACTION_DATE是一个日期(我真诚地希望它是),您需要使用TO_DATE将字符串转换为DATE.因为它是一个字符串,它需要在引号中,因为这就是我们用文字做的.

哦,另一件事是,掩码需要匹配字符串中使用的格式来表示日期.

所以,该行应该是:

TRANSACTION_DATE = to_date('02-MAY-2006', 'dd-mon-yyyy')
Run Code Online (Sandbox Code Playgroud)


Ern*_*ill 5

你需要在2006年5月2日左右添加引号,否则它看起来像一个算术表达式.