ORA-00923 ORACLE ERROR - PullRequest
       3

ORA-00923 ORACLE ERROR

0 голосов
/ 09 августа 2011
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')'

Ответы [ 3 ]

3 голосов
/ 09 августа 2011

Я предполагаю это:

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')'
3 голосов
/ 09 августа 2011

Это из-за закрывающих скобок после 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')'
2 голосов
/ 09 августа 2011

После форматирования, чтобы сделать его более понятным, кажется, что вы добавили а) в он выбирает часть

У вас есть SELECT SOURCE_SYSTEM_CHANNEL_CODE, to_char(TRANSACTION_DATE), 'dd/mm/yyyy'),

Я думаю, что вы добавили дополнительную конечную скобку для to_char после TRANSACTION_DATE, это может быть

SELECT SOURCE_SYSTEM_CHANNEL_CODE, to_char(TRANSACTION_DATE, 'dd/mm/yyyy'),

Это помогает четко форматировать код и использовать редактор, соответствующий скобкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...