vb.net-{"ORA-06550: PLS-00306: 调用 '**' 时 错误 ORA-06550:

问题描述

{"ORA-06550: PLS-00306: 调用 '**' 时 错误 ORA-06550: 10C
{""ORA-06550: 第 1 行 第 7 列: PLS-00306: 调用 'PROC_GETDATA' 时参数个数或类型错误 ORA-06550: 第 1 行 第 7 列: PL/SQL: Statement ignored ""}
这是我的程序调用代码
'''
''' 获取数据的万能存储过程,查询返回结果集的存储过程调用
''' Author:Jones.Vale
''' Datetime:20160127
'''
''' 存储过程名
''' 传入的参数数组,第一列为参数名,第二列为参数值
'''
'''
Public Function ExecStoredProcData(ByVal strProcName As String ByVal objHashtable As Hashtable) As DataSet
Dim mydt As New DataSet
Dim myCommand As OracleCommand
Dim objOracleParameter As IDictionaryEnumerator = objHashtable.GetEnumerator()
Dim iii As Integer
iii = 30
myCommand = myORACLEConnection.CreateCommand
While objOracleParameter.MoveNext()
Dim tempValue As String = TypeName(objOracleParameter.Value)
Dim myParameter As New OracleParameter '定义一个参数

        If tempValue = ""Date"" Then            myParameter.DbType = DbType.Date   '赋参数类型          ElseIf tempValue = ""Integer"" Then            myParameter.DbType = DbType.Int32    '赋参数类型          ElseIf tempValue = ""Double"" Or tempValue = ""Float"" Or tempValue = ""NUMBER"" Then            myParameter.DbType = DbType.Double    '赋参数类型          Else            myParameter.DbType = DbType.String  '赋参数类型         End If        myParameter.ParameterName = objOracleParameter.Key        myParameter.Value = objOracleParameter.Value        myCommand.Parameters.Add(myParameter) '加入参数列表     End While    myCommand.CommandText = strProcName    myCommand.CommandType = CommandType.StoredProcedure     Dim dataAdapter As New OracleDataAdapter    dataAdapter.SelectCommand() = myCommand    dataAdapter.Fill(mydt)    Return mydtEnd Function

以下是在plSQL中执行测试结果没有任何问题。

存储过程代码:
CREATE OR REPLACE PROCEDURE PROC_GetData
(
v_dateTime date
v_tiger number
p_cur out SYS_REFCURSOR---游标返回
)
as
v_sql varchar2(2000) := ' ';
begin
if v_tiger = 2 then
v_sql :='select t.branchnosum(t.reportloss)/10000 as RV from bhresvfee.t_resv_claim_bhsys t
where t.insuranceclass like (''7%'') and casestate<>''9'' group by t.branchno order by t.branchno';
end if;
OPEN p_cur FOR v_sql;

end PROC_GetData;

高手请指点一下这个问题是什么引起的。怎么处理才有效,谢谢!

解决方案

参数个数或类型错误 说的很清楚了
你传人的参数个数不匹配,或者数据类型不对。 建议调试下你的sql 把,参数传递进去看看到底哪里出现问题。

解决方案二:
抓虫子:RA-06550...nPLS-00306: 调用 'MEETING_NOTICE_CREATE' 时参数个数或类型

解决方案三:
debug一下调用ExecStoredProcData一下调用时传入的objHashtable参数
Hashtable是没有顺序的,而存储过程对参数是有位置要求的,最好用ArrayList将排序好的参数传入

时间: 2024-08-30 22:54:17

vb.net-{&amp;quot;ORA-06550: PLS-00306: 调用 &amp;#39;**&amp;#39; 时 错误 ORA-06550:的相关文章

vb参数传递-VB高手请进!在线等。。——shell使用dos命令时参数的传递

问题描述 VB高手请进!在线等..--shell使用dos命令时参数的传递 怎样才能将%LOGPATH%所替代的内容传递到其中? (不要写成调用bat的形式) 解决方案 不行的,%logpath%不能包在括号里,应该这样 Shell "cmd /k mkdir "+LOGPATH+" > nul 2>&1", vbNormalNoFocus vb调用dos是直接运行引号内的,而不给某一变量赋值.另外包在百分号内的是bat变量而不是vb的变量 解决

c++-用vb.net(或C#)调用C++编写的DLL时遇到的问题

问题描述 用vb.net(或C#)调用C++编写的DLL时遇到的问题 这部分是在c++中可以正常工作的部分,其声明如下: extern "C" int LHD_Main(unsigned char *pImage, RECT *rcRoi,int w, int h, char *PlateCharacters, RECT *rectPlateLocation, int *PlateReliability, int nMod); 调用如下 //加载图片 IplImage *image =

oracle11g-oracle 00306 调用‘||’时个数或参数错误

问题描述 oracle 00306 调用'||'时个数或参数错误 create or replace procedure lable_to_lable_relation is Cursor phases is select distinct lt.phase from lable_temple lt ; phaseName varchar2(100); sqlStr varchar2(2000); begin --创建标签关系表 sqlStr:='create table SYSTEM.labl

在我使用vb.net-acess通过dataAdapter对象的insertcommand属性向数据库中添加纪录时, 运行的时候老是出现字符串语法错误的提示,不

问题描述 在我使用vb.net-acess通过dataAdapter对象的insertcommand属性向数据库中添加纪录时,运行的时候老是出现字符串语法错误的提示,不知道哪里出了问题.求解答!!急十分感谢!!主要代码:类:SharedFunctionadd()AsStringDiminsvalAsString="'"&stuname&"','"&stusex&"','"&stuhousenum&&

VB.NET中使用代表对方法异步调用

异步 按照我们常规的思维方式,计算机应该是干完一件事,然后再干下一件.用术语来说,这种执行任务的方式叫做同步执行(Synchronous Execution).既然这样,那么为什么要引入异步执行的概念呢? 目录 为什么要使用异步调用实现异步调用的步骤和机理 为什么要使用异步调用(Asynchronous Method Execution) 按照我们常规的思维方式,计算机应该是干完一件事,然后再干下一件.用术语来说,这种执行任务的方式叫做同步执行(Synchronous Execution).既然

VB如何实现两个窗体的互相调用

问题描述 VB.NET要实现如下功能:1.form1和form2均有一个按钮2.form1中点击按钮,form2显示,form1隐藏3.form2中点击按钮,form1显示,form2隐藏请问如何实现?非常感谢!!! 解决方案 解决方案二:PublicClassForm1PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickForm2.Visible=True

VB写一工具,点击按钮调用bat文件,怎么将bat文件生成到工程中,

问题描述 我用VB写了一个小工具,通过界面上点击按钮后,调用bat文件,并执行.这一步完成了..现在的问题就是我生成工程(.exe)时,我的bat文件没有生成到工程中来..请问一下各位大虾,我这样做是否有问题... 解决方案 解决方案二:无论是VB6/VB.NET在Project打包的时候,把需要的相关文件添加进来就可了.解决方案三:用shell.run命令试试解决方案四:工程---属性---编译时包含的文件可以选择解决方案五:引用3楼ilmic的回复: 工程---属性---编译时包含的文件可以

用VB编写一个可以在ASP环境下调用的运行CMD命令的组件

有时我们在管理服务器时为了安全起见会禁用Windows Scripting Host,这样能防止某些不法用户利用WSH生成一个WebShell,对服务器造成很大的安全隐患.但如果我们又想禁用WSH,又想使用自己的WebShell用于服务器的管理怎么办呢?这里介绍了一种实现ASP中运行CMD并显示结果的组件编程.希望对大家能有所帮助. 首先我们新建一个ActiveDLL工程,命名为ASPCMD,新建的类命名为CMDShell.在"Project"的"Referenct"

多媒体-&amp;amp;quot;Scan Next Track” 这个键,写入注册表时应当如何表示?

问题描述 "Scan Next Track" 这个键,写入注册表时应当如何表示? 背景: 我有一个多媒体键盘,我很不喜欢上面的"Home"键跳出浏览器,我希望按下这个键后,我的播放器会播放下一首歌. 我查到,微软定义了一个这样的多媒体键,名叫"Scan Next Track",键值是0xB5,很不幸,我的键盘不带这个键. 微软同样支持修改多媒体键的功能,方法是修改"[HKEY_LOCAL_MACHINESOFTWAREMicrosoft