2011-01-12 11 views
3

これは本当に簡単な質問ですが、どこでもこの構文を見つけることはできません。pl/sql関数内で変数を宣言できないようですか?

私はこのようなものを持っている:

FUNCTION some_function 
(
t_string IN VARCHAR2 
) RETURN NUMBER IS 

some_variable NUMBER; 

BEGIN 
//logic 
END some_function; 

それはsome_variable宣言を打つと、それは期待していた/どのように私は、変数を宣言しない「言語」を私に指示?私はこのようにした例を見たことがあるが、なんらかの理由でうまくいきません。

多くのおかげで、 ふぐ

+0

どこを実行しますか?定義と実装部分を持つデータベースパッケージを作成します。あなたの関数を書いてそれを呼び出すことは、2つの異なることです。 –

+0

宣言は問題ありません。問題は機能の本体に存在しなければならない。 – winkbrace

+1

@BazzPsychoNut:宣言はうまくいきません。 CREATE OR REPLACEが必要です。 – DCookie

答えて

4

があなた宣言された変数に何か問題が見つかりませんでした:

期待通りにnullを返し
create or replace FUNCTION some_function 
(
t_string IN VARCHAR2 
) RETURN NUMBER 
IS 
some_variable NUMBER; 

BEGIN 

return some_variable; 

END some_function; 

select some_function('ff') from dual 
2

問題はないということです@ Michaelの答えに示すように、関数宣言にCREATE OR REPLACEキーワードがあります。

関連する問題