2017-07-05 13 views
1

私はtest1という新しいデータベースを作成しました。新しいユーザーはtest1_userでした。そして、私はtest1_userというデータベースにtest1_userのすべてを与えました。さらに、私はスキーマtest1_userを作成しました。今度は、新しいスキーマfunctions_packageを作成し、その所有者はtest1_userです。postgresql schemas conflict

私のコード:私は、スキーマfunctions_packageの下にいくつかの関数を作成し、今I`mは古い関数が、イム取得EROR使用して新しい機能を作成しようとして

CREATE OR REPLACE FUNCTION functions_package.newFunction(file_id  
utl_file.file_type) RETURNS VOID AS $body$ 
BEGIN 
functions_package.old_function1(file_id); 
functions_package.old_function2(file_id); 
functions_package.old_function3(file_id); 

End; 
-- 
$body$ 
LANGUAGE PLPGSQL 
SECURITY DEFINER 
STABLE; 

ERROR: syntax error at or near "functions_package" 
LINE 3: functions_package.old_function('aa'); 

I M trying to create the new function from user test1_user; Iを私の新しい関数を呼び出そうとしているスキーマfunctions_packageのすべての関数に対してこのエラーが発生しています。すべての古い機能では、私は何の機能も召喚しませんでしたので、この種のエラーはありませんでした。 いくつかお手伝いしますか?

+0

私はメインのポストを更新 –

+0

上記のエラーを与えるコードを提供してください。 – Mariel

+0

ありがとうございます - 今のところいいです –

答えて

2

あなたは、関数名の前selectが不足している: 試し:

CREATE OR REPLACE FUNCTION functions_package.newFunction(file_id  
utl_file.file_type) RETURNS VOID AS $body$ 
BEGIN 
perform functions_package.old_function1(file_id); 
perform functions_package.old_function2(file_id); 
perform functions_package.old_function3(file_id); 

End; 
-- 
$body$ 
LANGUAGE PLPGSQL 
SECURITY DEFINER 
STABLE; 
+0

ありがとう!私はいつもファンクションを呼び出すことを実行する必要がありますか? – Mariel

+0

はい。 posrtgresには手続きのみの関数がないので、関数frunctionを選択して関数を選択できますが、その上でアクションが必要です。 plpgsqlで結果を選択して破棄したい場合は、perform –