2013-04-08 2 views
-1

나는 다음을 포함하는 저장 프로 시저를 가지고 : 그것은 잘 작동하지만 문제는 내가 그 날짜를 변수를해야 겠어입니다변수를 매개 변수로 사용하여 Oracle에서 "to_date"함수를 사용하는 방법은 무엇입니까?

V_DATACONVERTIDA varchar2(100) := TO_DATE('27/10/1994 23:59:59', 'DD/MM/YYYY HH24:MI:SS.SSSSS'); 

. 그래서

V_DATAEXPIRACAO VARCHAR2(100) := p__formdata; 

p__formdata (VARCHAR2)가 SP로부터 생성되는 파라미터. 내가 그 변경 한

는하지만, 나는 다음과 같은 오류가 발생했습니다 :

ORA-01858 : 숫자가 아닌 문자가 발견 된 숫자가

+0

VARCHAR2에 날짜 출력을 지정하는 것으로 보입니다. – IndoKnight

+0

나도 알아,하지만 (어떻게 또는 그 이유는 모르겠다.) 코드의 첫 번째 줄에서 나는 똑같은 일을하고있다. : – Rodrigo

+0

나는 varchar2 (100)에서 날짜로 바꿨으며 동일한 오류가 발생했습니다. – Rodrigo

답변

1

" I don't understand why it says it expects a numeric value when everything is supposed to be string (or varchar)"

잘 명확하게 모든 것을 예상 문자열이 아닙니다. 오라클은 ORA-01858 오류로 인해 문자열을 날짜로 변환하려고하지만 잘못된 형식의 마스크를 사용하려고합니다. 예를 들어이 예에서는 문자 월을 전달하지만 마스크에서 숫자 월을 지정합니다 (to_date('08-APR-2013', 'DD-MM-YYYY')).

그래서 오류가 발생하면 프로그램이 생각한대로 작동하지 않습니다. 그러나 전체 소스 만 볼 수 있으므로 버그가있는 곳을 파악할 수 있습니다.

관련 문제