Oracle CLR:必须定义标识符“DBMS_CLR”

时间:2013-09-25 14:22:21

标签: c# oracle visual-studio clr windows-7-x64

  • 我已安装适用于Visual Studio的Oracle开发人员工具(ODTwithODAC1120320_32bit)
  • 我已运行Database Configuration Assistant以在oracle数据库上启用.NET层

然而,当我尝试部署一个简单的函数时,它无法使用错误

进行编译
C:\...\SQL Developer\Untitled2.sql
    Error(5,5): PLS-00201: identifier 'DBMS_CLR' must be declared
    Error(5,5): PL/SQL: Statement ignored
    Error(6,5): PL/SQL: Statement ignored
    Error(6,33): PLS-00201: identifier 'DBMS_CLR' must be declared
    Error(7,5): PL/SQL: Statement ignored
    Error(7,12): PLS-00201: identifier 'DBMS_CLR' must be declared

编译的函数(只创建一个连接并将输入的数字作为输出返回)

CREATE  OR REPLACE LIBRARY "PROJECT12_DLL" AS '$ORACLE_HOME\bin\clr\Project12.dll';
/
CREATE OR REPLACE FUNCTION GETNUMBER wrapped 
a000000
369
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
14a 138
Zi7LUdjyS4D8cjiW2nS3rf/pLZwwg0zQNW0VfC8CAP7qXStE8/w9Xuy8PFb6oFkbDrDC1e3j
Zk34tXgr6lXtdGr+HE4Zd/dftKfDHWt9DKWOvIwrjachIBIMrDl6XnT0WbVLJcw8YQkbZdYa
0Kh//cLT8GNZJp7U3mCDP6HgYyjtUjR8y+za14OE3TiB6rLIjmWX/mBOnMneXSAUftbdmifX
ub8cMk85fnBRyoj8xsbrNIYzHWAYAQ+tnHJcGZCu+Di/YqeZx840cRj99kDVECydQMf5HLD2
XzUOJ43wC5sdUklUwA==

/

当我在google上搜索PLS-00201时,它会提到:

  • 未正确安装和配置Oracle Database Extensions for .NET
  • 使用适用于.NET的Oracle部署向导尚未正确部署.NET存储过程。

我想我已经做到了两个:

  • 我已经将数据库配置代理运行到"配置" .Net层(可能没有很多配置,只是一个复选框和一个下载模式来安装它)
  • 我已经从.net部署了dll(并尝试使用上面生成的脚本)

任何人都知道我还能尝试使其工作吗? (在本地运行oracle一台windows-7-x64机器)。感谢。

1 个答案:

答案 0 :(得分:0)

我似乎有回答自己问题的坏习惯,无论如何,如果有人遇到这个问题,我解决了DBMS_CLR上的编译错误必须通过执行以下内容来声明:

GRANT EXECUTE ON DBMS_CLR TO public;
GRANT EXECUTE ON DBMS_CLRTYPE TO public;
GRANT EXECUTE ON DBMS_CLRPARAMTABLE TO public;