Oracle 11gR2 DB에서 오류없이 SQL Developer에서 컴파일 한 다음 함수가 있습니다. 이것은 나중에 빌드 될 테스 함수 일 뿐이지 만 그 목적은 텍스트 값과 카테고리 값을 가져 오는 것입니다. 텍스트는 Hello 일 수 있으며 category는 French이고 그 결과는 Bonjour 여야합니다.오류 코드 900을 제공하는 Oracle SQL 함수/함수 실행
create or replace FUNCTION testTranslate
(
originaltext IN VARCHAR2,
fineoscategory IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2
AS
translatedttext VARCHAR2(255) := '';
BEGIN
SELECT distinct tti.translatedtex
INTO translatedttext
FROM toctranslationitem tti,
todomaininstance tdi
WHERE tti.translationty = fineoscategory
AND tti.originaltext = originaltext;
RETURN translatedttext;
END;
필자는 SQL 개발자를 한번도 사용해 보지 못했지만 기능을 작성하는 데 익숙해졌습니다. 따라서 이것을 어떻게 실행해야할지 모르겠습니다.
내가 해봤 다음 testTranslate 프로 시저가 아니거나
을 정의되지 는testTranslate('Hello', 'French');
execute testTranslate('Hello', 'French');
Begin
testTranslate('Hello', 'French');
end;
처음 두 날 900 유효하지 않은 SQL 문을 오류주고, 세번째는 나에게 오류 6550을 제공합니다 I SQL 개발자에서 디버깅하려고하면 별도의 문제가 발생합니다. 스크립트가 실행되는 것 같지만 오류 메시지 1422 정확한 반입은 요청 된 행 수 이상을 리턴합니다. select 내에서 고유 한없이 실행될 때 함수 내에서 select 문은 꽤 많은 값을 반환하지만 distinct를 사용하면이 값을 반환하기 때문에 이것이 무엇을 내놓고 있는지 확실하지 않습니다.
모든 포인터?
정답 모두 1 분 일찍 도착했습니다. :). – Predz