変数と条件付きの関数を作成するための正しい構文を探しています。変数と条件付きの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