Visual Studio 2022连接Oracle无法显示Other Users节点如何解决
针对该问题的可行解决方案
- 第一步先确认账号权限:你使用的连接账号需要提前获得
Sharedschema下对象的访问权限,用DBA账号执行以下授权语句即可:
-- 授权查询所有表权限 GRANT SELECT ON SHARED.* TO <你的登录账号>; -- 授权执行存储过程权限 GRANT EXECUTE ON SHARED.* TO <你的登录账号>;
如果不需要全量权限,可以把语句中的*替换为对应要访问的表名或存储过程名。
- 不需要依赖VS可视化节点也可直接调用存储过程:即使服务器资源管理器不显示
Other Users节点,你只需要在代码中调用时显式指定schema前缀即可,.NET Framework Data Provider for Oracle的调用示例如下:
using System.Data; using System.Data.OracleClient; // 替换为你自己的连接字符串 string connectionString = "Data Source=<Oracle实例名>;User Id=<你的账号>;Password=<你的密码>;"; using (OracleConnection connection = new OracleConnection(connectionString)) { connection.Open(); using (OracleCommand command = new OracleCommand()) { command.Connection = connection; // 显式指定schema名.存储过程名即可访问其他用户下的对象 command.CommandText = "SHARED.<目标存储过程名>"; command.CommandType = CommandType.StoredProcedure; // 按存储过程定义添加对应参数,示例如下 command.Parameters.Add("p_input", OracleType.VarChar, 50).Value = "输入参数值"; command.Parameters.Add("p_output", OracleType.VarChar, 100).Direction = ParameterDirection.Output; command.ExecuteNonQuery(); // 读取输出参数值 string result = command.Parameters["p_output"].Value.ToString(); } }
- 若需要在VS服务器资源管理器中看到对应节点,可以调整连接过滤规则:
- 右键已创建的Oracle连接,选择过滤选项
- 在过滤配置页勾选显示所有schema,或者手动将
Shared添加到允许展示的schema列表 - 刷新连接后即可看到
Other Users下的Shared节点及对应的表、存储过程等对象
注意:.NET Framework内置的Oracle数据提供程序已被官方标记为弃用,后续待适配VS2022的Oracle Developer Tools发布后,建议切换为Oracle官方提供的ODP.NET驱动,可获得更完善的功能支持和兼容性。
内容的提问来源于stack exchange,提问作者Skyler Gunn
相关产品推荐
相关产品推荐

