변수 및 조건이있는 함수를 작성하기 위해 올바른 구문을 찾고 있습니다.변수가있는 Oracle 함수를 작성하십시오. 조건이있는 경우
create or replace
FUNCTION createURL(IDName IN varchar2, IDValue IN number)
RETURN VARCHAR2
IS
ApplicationURL VARCHAR2(100);
AppplicationParm VARCHAR2(255);
DBName VARCHAR(100);
BEGIN
select sys_context('USERENV','DB_NAME') AS Instance into DBName FROM DUAL;
IF DBName = 'WAMDEV' THEN ApplicationURL := 'http://srpwam10:080/maxi';
ELSIF DBName ='WAMDEVPJ' THEN ApplicationURL := 'http://srpwam10:080/maxi';
ELSIF DBName = 'WAMTST' THEN ApplicationURL := 'http://wamtest/maxi';
ELSIF DBName = 'WAMTSTPJ' THEN ApplicationURL := 'http://wamtest/maximo';
ELSIF DBName = 'WAMQA' THEN ApplicationURL := 'http://wamqa/maxi';
ELSIF DBName = 'WAMQAPJ' THEN ApplicationURL := 'http://wamqa/maximo';
ELSE DBName := 'WAMP'; ApplicationURL := 'http://wam/maxi';
END IF ;
IDN := IDName;
IF IDN = 'workorderid' THEN AppplicationParm := '/ui/?event=loadapp' || CHR(38) || 'value=wotrack' || CHR(38) || 'uniqueid=' || TO_CHAR(IDValue);
ELSIF IDN = 'assetuid' THEN AppplicationParm := '/ui/?event=loadapp' || CHR(38) || 'value=asset' || CHR(38) || 'uniqueid=' || TO_CHAR(IDValue);
ELSIF IDN = 'locationsid' THEN AppplicationParm := '/ui/?event=loadapp' || CHR(38) || 'value=location' || CHR(38) || 'uniqueid=' || TO_CHAR(IDValue);
ELSE AppplicationParm := '/ui/?event=loadapp' || CHR(38) || 'value=sr' || CHR(38) || 'uniqueid=' || TO_CHAR(IDValue);
END IF;
RETURN 'javascript:void(window.open(''' || ApplicationURL || ApplicationParm || ''',''_blank''))';
END;
코드가 정확하고 무엇이 문제인지 잘 모르겠습니다. 나는 그 기능을 창조 할 수 없다. 당신의 도움은 대단히 감사하겠습니다.
당신은 실제로 질문을하지 않았습니다. 코드에서 오류가 발생합니까? 그렇다면 어떤 오류입니까? 한가지 빠져 나오는 것은 :'IDN : = IDName;'-'IDN'이라는 변수를 정의하지 않았습니다. 그러나 단지 비교를하기 위해 변수를 생성하는 것이 아니라 비교에 직접'IDNAME '을 사용할 수 있습니다. 예 : 'idname = ... elsif idname = ... ' – Boneist