【发布时间】:2019-12-29 04:54:39
【问题描述】:
我正在尝试使用 C# .net 收集 oracle 架构的统计信息
command = new OracleCommand();
command.CommandText = "DBMS_STATS.GATHER_SCHEMA_STATS";
command.Parameters.Add(new OracleParameter("ownname", "APP_PM"));
command.Parameters.Add(new OracleParameter("estimate_percent", 100));
command.Parameters.Add(new OracleParameter("degree", 30));
command.Parameters.Add(new OracleParameter("cascade", "TRUE"));
appEngine.ExecuteSProc(command);
我得到了这个例外。
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GATHER_SCHEMA_STATS'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
有人知道吗?
【问题讨论】:
-
我认为“级联”参数有问题。
-
cascade 接受一个布尔参数,我想你可能是在发送一个字符串
-
根据this Microsoft support ticket,您不能使用 OracleParameter 传递 BOOLEAN 参数。您可能需要使用匿名 PL/SQL 块从 C# 应用程序运行 GATHER_SCHEMA_STATS。祝你好运。
-
谢谢@BobJarvis support.microsoft.com/kb/306530 票真的很有帮助,我只是在其他程序中调用了这个程序作为解决方法。