私はオラクルの知識がほとんどありません。以下のような関数を作成しようとしました。
CREATE OR REPLACE FUNCTION "BOOK"."CONVERT_TO_WORD" (totpayable IN NUMBER) RETURN VARCHAR
AS
totlength NUMBER;
num VARCHAR2(14);
word VARCHAR2(70);
word1 VARCHAR2(8);
BEGIN
SELECT LENGTH(totpayable) INTO totlength FROM dual;
WHILE totlength>0
LOOP
SELECT SUBSTR(totpayable,totlength,1) INTO num FROM dual;
IF num='-' THEN
word1:='(Excess)';
END IF;
IF num='0' THEN
word1:='Zero';
END IF;
IF num='1' THEN
word1:='One';
END IF;
IF num='2' THEN
word1:='Two';
END IF;
IF num='3' THEN
word1:='Three';
END IF;
IF num='4' THEN
word1:='Four';
END IF;
IF num='5' THEN
word1:='Five';
END IF;
IF num='6' THEN
word1:='Six';
END IF;
IF num='7' THEN
word1:='Seven';
END IF;
IF num='8' THEN
word1:='Eight';
END IF;
IF num='9' THEN
word1:='Nine';
END IF;
word:=word1||' '||word;
totlength:=totlength-1;
END LOOP;
RETURN word;
END ;
実行しようとすると、次のようなエラーが発生します。
ORA-01031: 権限が不十分です
01031.00000 - 「権限が不十分です」
*原因: 適切な権限なしで現在のユーザー名またはパスワードを変更しようとしました。このエラーは、必要なオペレーティング システム権限なしでデータベースをインストールしようとした場合にも発生します。Trusted Oracle が DBMS MAC で構成されている場合、ユーザーが現在のログインよりも高いラベルで必要な権限を付与されていると、このエラーが発生することがあります。
次のコマンドを使用して、ユーザーに権限を付与しました。
grant all privilege to book;