求助:存储过程中建同义词报错:ORA-01031: insufficient privileges
我直接在PL/SQL developer下创建同义词,是可以成功的,
而在存储过程中,却报:ORA-01031: insufficient privileges。
CREATE OR REPLACE PROCEDURE P_Create_Synonym_On_MainDB(
v_I_ObjName IN VARCHAR2, --对象名称
v_I_ObjSrcDBName IN VARCHAR2, --对象来源数据库名
v_O_errorCode OUT INT, --结果:0成功,非0失败
v_O_errorMsg OUT VARCHAR2
)
AS
v_sqlstr VARCHAR2(256);
v_linkName VARCHAR2(50);
BEGIN
select DB_LINK into v_linkName from ALL_DB_LINKS where HOST = UPPER(v_I_ObjSrcDBName);
v_sqlstr := 'CREATE PUBLIC SYNONYM '||v_I_ObjName||' For '||v_I_ObjName||'@'||v_linkName;
execute immediate v_sqlstr;
v_O_errorCode := 0;
return;
EXCEPTION
WHEN OTHERS THEN
v_O_errorCode := SQLCODE;
v_O_errorMsg := SQLERRM;
end P_Create_Synonym_On_MainDB;