ORA-01036:非法变量名称/编号 [英] ORA-01036: illegal variable name/number

查看:96
本文介绍了ORA-01036:非法变量名称/编号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在oracle中调用一个包/过程(来自ASP页面)

需要许多参数。我已经使用OO40工作但是

不幸的是,事务回滚功能似乎没什么用。


所以我现在尝试使用ADO代替(希望ADO交易能够工作),但是我得到了上述错误。我最初的搜索没有发现任何合适的建议 - 似乎有很多原因可能会发生这个错误

这个错误 - 到目前为止我找不到我的情况。


有谁可以建议我哪里出错了?更好的是,任何人都可以发布我可以用作模型的

工作代码片段吗?我已经有了另一个[非常类似的] b $ b函数,它调用了一个不同的程序包/程序,这个程序很好。

罚款。


谢谢你提前...


CJM


代码片段:


程序AddSerialToHistory2(varchar2中的sSerialNo) ,varchar2中的sPartNo,

sSequenceNo的数量,

varchar2中的sShopOrderNo,varchar2中的sLineNo,varchar2中的sRelNo,

varSu2中的sSuperiorSerialNo,< br $> varchar2中的sSuperiorPartNo,varchar2中的sOrderType,

varchar2中的sHistoryPurpose,varchar2中的sCurrentPosition,

iResult输出数字)



sDesc Varchar2(100):=''收到商店订单的库存''||

sShopOrderNo || '',''|| sLineNo || '',''|| sRelNo;

dtDate日期:= CURRENT_DATE;

开始

插入IFSAPP.PART_SERIAL_HISTORY_TAB

(Part_No,Serial_No ,Sequence_No,Order_No,Line_No,Release_No,

Transaction_Date,

RowVersion,Transaction_Description,Order_Type,History_Purpose,

Current_Position,User_Created,

Part_Ownership)

价值

(sPartNo,sSerialNo,sSequenceNo,sShopOrderNo,sLineNo,sRelNo,

dtDate,dtDate,sDesc ,

sOrderType,sHistoryPurpose,sCurrentPosition,''IFSAPP'',''COMPANY

OWNED'');


如果SQL%ROWCOUNT = 1然后

iResult:= 0;

- 承诺;

否则

iResult: = 1;

- 回滚;

结束如果;

END AddSerialToHistory2;


功能AddHistory(sSerialNo,sPartNo,sShopOrderNo,sLineNo,sRelNo,

sSuperiorSerialNo,sSuperiorPartNo)


Dim iResult2

Dim oParam

with oCmd

.CommandType = adCmdText


设置oParam = .CreateParameter(" ; sSerialNo",adVarchar,adParamInput,50,

sSerialNo)

.Parameters.Append oParam


设置oParam = .CreateParameter (" sPartNo",adVarchar,adParamInput,50,

sPartNo)

.Parameters.Append oParam


''设置oParam = .CreateParameter(" sSequenceNo",adSmallInt,adParamInput,

50,1)

''.Parameters.Append oParam


设置oParam = .CreateParameter(" sShopOrderNo",adVarchar,adParamInput,

50,sShopOrderNo)

.Parameters.Append oParam

设置oParam = .CreateParameter(" sLineNo",adVarchar,adParamInput,50,

sLineNo)

.Parameters.Append oParam


设置oParam = .CreateParameter(" sRelNo",adVarchar,adParamInput,50,

sRelNo)

.Parameters.Append oParam


设置oParam = .CreateParameter(" sSuperiorSerialNo",adVarchar,

adParamInput,50,sSuperiorSerialNo)

.Parameters.Append oParam


设置oParam = .CreateParameter(" sSuperiorPartNo",adVarchar,adParamInput,

50, sSuperiorPartNo)

.Parameters.Append oParam


''设置oParam = .CreateParameter(" sHistoryPurpose",adVarchar,

adParamInput,50,INFO)

''.Parameters.Append oParam


''设置oParam = .CreateParameter(" sCurrentPosition",adVarchar ,

adParamInput,50,InInventory)

''.Parameters.Append oParam


设置oParam = .CreateParameter (iResult,adDecimal,adParamReturnValue)

.Parameters.Append oParam


''将行插入SNE(车间订单)

.CommandText =" {Call ADDROWS.A ddSerialToCatalog(?,?,1,?,?,?,?,?,

''INFO'',''InInventory'',?)}"

。执行()''< =======这是错误发生的地方




AddHistory = .Parameters(" iResult" ;)。价值


.Parameters.Delete" sSerialNo"

.Parameters.Delete" sPartNo"

。参数。删除" sSequenceNo"

.Parameters.Delete" sShopOrderNo"

.Parameters.Delete" sLineNo"

.Parameters.Delete " sRelNo"

.Parameters.Delete" sSuperiorSerialNo"

.Parameters.Delete" sSuperiorPartNo"

.Parameters.Delete" sHistoryPurpose"

.Parameters.Delete" sCurrentPosition"

.Parameters.Delete" iResult"




结束功能

I''m trying to call a package/procedure in oracle (from an ASP page) which
requires a number of parameters. I have got this working using OO40 but
unfortunately the transaction rollback function doesnt seem to do much.

So I''m now trying to use ADO instead (in the hope that ADO transactions will
work), however I''m getting the above error. My initial searches havent
turned up any suitable suggestions - there appear to be many reasons why
this error might occur - none of which I have found so far fit my situation.

Can anyone suggest where I am going wrong? Better still, can anyone post a
working code snippet that I can use as a model? I already have another [very
similar] function which calls a different package/procedure which works
fine.

Thanks in advance...

CJM

Code Snippets:

PROCEDURE AddSerialToHistory2(sSerialNo in varchar2, sPartNo in varchar2,
sSequenceNo in number,
sShopOrderNo in varchar2, sLineNo in varchar2, sRelNo in varchar2,
sSuperiorSerialNo in varchar2,
sSuperiorPartNo in varchar2, sOrderType in varchar2, sHistoryPurpose in
varchar2, sCurrentPosition in varchar2,
iResult Out number)
IS
sDesc Varchar2(100) := ''Received into stock against Shop Order '' ||
sShopOrderNo || '', '' || sLineNo || '', '' || sRelNo;
dtDate Date := CURRENT_DATE;
Begin
Insert Into IFSAPP.PART_SERIAL_HISTORY_TAB
(Part_No, Serial_No, Sequence_No, Order_No, Line_No, Release_No,
Transaction_Date,
RowVersion, Transaction_Description, Order_Type, History_Purpose,
Current_Position, User_Created,
Part_Ownership)
Values
(sPartNo, sSerialNo, sSequenceNo, sShopOrderNo, sLineNo, sRelNo,
dtDate, dtDate, sDesc,
sOrderType, sHistoryPurpose, sCurrentPosition, ''IFSAPP'', ''COMPANY
OWNED'');

If SQL%ROWCOUNT = 1 Then
iResult := 0;
--Commit;
Else
iResult := 1;
--Rollback;
End If;
END AddSerialToHistory2;

Function AddHistory (sSerialNo, sPartNo, sShopOrderNo, sLineNo, sRelNo,
sSuperiorSerialNo, sSuperiorPartNo)

Dim iResult2

Dim oParam
With oCmd
.CommandType=adCmdText

Set oParam = .CreateParameter("sSerialNo", adVarchar, adParamInput, 50,
sSerialNo)
.Parameters.Append oParam

Set oParam = .CreateParameter("sPartNo", adVarchar, adParamInput, 50,
sPartNo)
.Parameters.Append oParam

''Set oParam = .CreateParameter("sSequenceNo", adSmallInt, adParamInput,
50, 1)
''.Parameters.Append oParam

Set oParam = .CreateParameter("sShopOrderNo", adVarchar, adParamInput,
50, sShopOrderNo)
.Parameters.Append oParam

Set oParam = .CreateParameter("sLineNo", adVarchar, adParamInput, 50,
sLineNo)
.Parameters.Append oParam

Set oParam = .CreateParameter("sRelNo", adVarchar, adParamInput, 50,
sRelNo)
.Parameters.Append oParam

Set oParam = .CreateParameter("sSuperiorSerialNo", adVarchar,
adParamInput, 50, sSuperiorSerialNo)
.Parameters.Append oParam

Set oParam = .CreateParameter("sSuperiorPartNo", adVarchar, adParamInput,
50, sSuperiorPartNo)
.Parameters.Append oParam

''Set oParam = .CreateParameter("sHistoryPurpose", adVarchar,
adParamInput, 50, "INFO")
''.Parameters.Append oParam

''Set oParam = .CreateParameter("sCurrentPosition", adVarchar,
adParamInput, 50, "InInventory")
''.Parameters.Append oParam

Set oParam = .CreateParameter("iResult", adDecimal, adParamReturnValue)
.Parameters.Append oParam

''Insert row into SNE (Shop Order)
.CommandText="{Call ADDROWS.AddSerialToCatalog(?, ?, 1, ?, ?, ?, ?, ?,
''INFO'', ''InInventory'', ?)}"
.Execute() ''<======= this is where
the error occurs

AddHistory = .Parameters("iResult").Value

.Parameters.Delete "sSerialNo"
.Parameters.Delete "sPartNo"
.Parameters.Delete "sSequenceNo"
.Parameters.Delete "sShopOrderNo"
.Parameters.Delete "sLineNo"
.Parameters.Delete "sRelNo"
.Parameters.Delete "sSuperiorSerialNo"
.Parameters.Delete "sSuperiorPartNo"
.Parameters.Delete "sHistoryPurpose"
.Parameters.Delete "sCurrentPosition"
.Parameters.Delete "iResult"

End With

End Function

推荐答案

任何人都可以建议我哪里出错了?更好的是,任何人都可以发布
Can anyone suggest where I am going wrong? Better still, can anyone post a

工作代码片段,我可以将其用作模型吗?我已经有了另一个[非常类似的] b $ b函数,它调用了一个不同的程序包/程序,这个程序很好。

罚款。


谢谢你提前...


CJM
working code snippet that I can use as a model? I already have another [very
similar] function which calls a different package/procedure which works
fine.

Thanks in advance...

CJM



我愿意打赌这是一个ADO问题,就你的方式而言

传递参数。我建议在数据库中获取一个SQL * PLUS会话(这可能是安装在oracle目录下的Web服务器上的
),并通过该方法手动运行该过程。如果它在那里工作
,你就会遇到映射问题。尝试类似......


变量iResult数字


exec AddSerialToHistory2(''test'',

''测试'',

1,

''测试'',

''测试'',

''测试'',

''测试'',

''测试'',

''测试'',

''测试'',

''测试'',

:iResult);


打印iResult


....在我建议的SQLPLUS会话中。


问候,


史蒂夫

I am willing to bet that this is an ADO issue in terms of how you are
passing arguments. I would suggest getting a SQL*PLUS session (this is
probably installed on the web server under the oracle directories) in
the database, and manually running the procedure through that. If it
works there, you have a mapping issue. Try something like ...

variable iResult number

exec AddSerialToHistory2(''test'',
''test'',
1,
''test'',
''test'',
''test'',
''test'',
''test'',
''test'',
''test'',
''test'',
:iResult);

print iResult

....in the SQLPLUS session I suggested.

Regards,

Steve


CJM写道:
CJM wrote:

我正试图打电话给oracle中的包/过程(来自ASP页面)

需要许多参数。我有这个使用OO40,但

不幸的是,事务回滚功能似乎没有做太多。
I''m trying to call a package/procedure in oracle (from an ASP page) which
requires a number of parameters. I have got this working using OO40 but
unfortunately the transaction rollback function doesnt seem to do much.



似乎做得不多......意味着什么?

Doesn''t seem to do much ... means precisely what?


所以我'我现在正试图使用​​ADO(希望ADO交易将会工作),但是我得到了上述错误。
So I''m now trying to use ADO instead (in the hope that ADO transactions will
work), however I''m getting the above error.



这个错误大概带有一个行号。使用它跟踪违规行的



-

Puget Sound Oracle用户组

And that error, presumably, came with a line number. Use it to track
down the offending line.
--
Puget Sound Oracle Users Group




Steve Howard写道:

Steve Howard wrote:

有谁可以建议我哪里出错了?更好的是,任何人都可以发布我可以用作模型的

工作代码片段吗?我已经有了另一个[非常类似的] b $ b函数,它调用了一个不同的程序包/程序,这个程序很好。

罚款。


谢谢你提前...


CJM
Can anyone suggest where I am going wrong? Better still, can anyone post a
working code snippet that I can use as a model? I already have another [very
similar] function which calls a different package/procedure which works
fine.

Thanks in advance...

CJM



我也注意到你打电话的程序不是

你已经提供了定义。你确定它们是一样的吗?

I also noticed the procedure you are calling is not the one for which
you have provided the definition. Are you sure they are the same?


这篇关于ORA-01036:非法变量名称/编号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆