2017-09-12 9 views
2

/SQL :오라클 APEX PL 나는이 PL/SQL 문을 가지고 오류

BEGIN 
    DELETE FROM REI_RETAIL_FACTOR_PARTS P 
    WHERE DEALER_NUMBER = :P13_FILTER_DEALER; 

    INSERT INTO REI_RETAIL_FACTOR_PARTS 
    (
     SELECT 
      RF.TEILE_NR as "PART_NR", 
      :P13_OVERWRITE_VALUE as "REQUESTED_RATE", 
      sysdate as "REQUEST_DATE", 
      :P13_FILTER_DEALER as "DEALER_NUMBER" 
     FROM REI_RETAIL_FACTOR RF 
     WHERE DEALER_NUMBER = :P13_FILTER_DEALER 
    ); 
END; 

오류 :

ORA-01861 : 리터럴 형식 문자열과 일치하지 않습니다.

아무 것도 포맷하지 않기 때문에 정말 실망 스럽습니다. 그럼이 오류가 계속 발생하는 이유는 무엇입니까?

+0

는 소리 . 삽입 할 대상 열을 지정하지 않았습니다. 날짜가 아닌 값 (sysdate가 아닌)을 날짜 열에 삽입하고 있습니까? –

+0

이것은 암시적인'TO_NUMBER' 일 수도 있습니다. – mustaccio

+0

True - 날짜 또는 숫자 열이 이와 같이 실패 할 수 있습니다. –

답변

0

ORA-01861 : 리터럴이 형식 문자열과 일치하지 않습니다.

INSERT 구문에 오류가 있습니다. 가능한 해결 방법 :

가) 열 목록 정의!

BEGIN 
    DELETE FROM REI_RETAIL_FACTOR_PARTS P 
    WHERE DEALER_NUMBER = :P13_FILTER_DEALER; 

    INSERT INTO REI_RETAIL_FACTOR_PARTS(column_name1, ...) 
     SELECT 
      RF.TEILE_NR as "PART_NR", 
      :P13_OVERWRITE_VALUE as "REQUESTED_RATE", 
      sysdate as "REQUEST_DATE", 
      :P13_FILTER_DEALER as "DEALER_NUMBER" 
     FROM REI_RETAIL_FACTOR RF 
     WHERE DEALER_NUMBER = :P13_FILTER_DEALER; 
END; 

B)를 선택에서 열 순서가 중요하다 ()은 (경고 제거) : 암시 적`TO_DATE` 불려처럼

BEGIN 
    DELETE FROM REI_RETAIL_FACTOR_PARTS P 
    WHERE DEALER_NUMBER = :P13_FILTER_DEALER; 

    INSERT INTO REI_RETAIL_FACTOR_PARTS 
     SELECT 
      RF.TEILE_NR as "PART_NR", 
      :P13_OVERWRITE_VALUE as "REQUESTED_RATE", 
      sysdate as "REQUEST_DATE", 
      :P13_FILTER_DEALER as "DEALER_NUMBER" 
     FROM REI_RETAIL_FACTOR RF 
     WHERE DEALER_NUMBER = :P13_FILTER_DEALER; 
END; 
+1

감사합니다. coloumn 순서가 잘못되어 올바른 이름을 정의하는 것으로 충분하다고 생각했습니다. –