집 >데이터 베이스 >MySQL 튜토리얼 >'함수 ...가 존재하지 않습니다'라는 메시지와 함께 SQL 함수 호출이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
제공된 코드에서 시도가 이루어졌습니다. FnUpdateSalegtab09 함수를 호출합니다. 그러나 함수가 존재하지 않거나 해당 인수 유형이 예상한 것과 일치하지 않음을 나타내는 오류가 발생합니다.
오류 메시지는 함수 이름이나 인수 유형이 올바르지 않을 수 있음을 나타냅니다. 가능한 원인을 조사해 보겠습니다.
FnUpdateSalegtab09의 함수 서명은 해당 매개 변수 중 일부가 smallint 유형임을 지정합니다. 그러나 함수 호출에서 이러한 매개변수는 숫자 리터럴로 전달되며 처음에는 정수 유형으로 추정됩니다.
예상 인수 유형과 실제 유형이 일치하지 않으면 오류가 발생할 수 있습니다.
이 문제를 해결하려면 숫자 리터럴을 함수에 전달하기 전에 숫자 리터럴을 올바른 유형인 smallint로 명시적으로 캐스팅해야 합니다. 아래와 같이 각 리터럴에 유형 캐스트 연산자(::)를 추가하면 이를 달성할 수 있습니다.
select FnUpdateSalegtab09( 4, 1, 0, 12, 1, '9'::varchar, '2014-07-15'::timestamp, 4048, '9'::varchar, 4048, 'MYCUSTOMER'::varchar, 12::money, 0, 0::money, 0.32, 185, 0, '2014-07-15 11:24:12 AM'::timestamp, 0, 0::money, 0, 0::money, 0::money, 0, 0::money, 0, 0::money, 0, 0::money, ''::varchar, 0::money, False, ''::varchar, '2014-07-15'::timestamp, ''::varchar, ''::varchar, False, ''::varchar, ''::varchar, 1, ''::varchar, 1, 0, 1, 0, 42 );
명시적인 유형 캐스트를 추가하면 인수 유형이 함수의 예상과 일치하는지 확인할 수 있습니다. 정의, 그리고 이제 "함수 ... 존재하지 않습니다." 오류 없이 함수 호출이 실행되어야 합니다.
위 내용은 '함수 ...가 존재하지 않습니다'라는 메시지와 함께 SQL 함수 호출이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!