H
Hanpan
Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位
这是ORALCE的存储过程 (在PL/SQL能正常执行)
CREATE OR REPLACE PROCEDURE insert_data
x1 number,
x2 marc_data.marc1%type
)
AS
BEGIN
INSERT INTO MARC_DATA (主键码,marc1)
VALUES (x1,x2);
END insert_data;
注marc1的类型是nvarchar2(2000)
在pl/sql中
insert_data(1,UNISTR('/0031/0031/00ef/.....')) ,能执行成功 因为unistr('字符串很长')
可是在delphi调用
with ADOStoredProc do
begin
Close;
Parameters.clear;
procedurename:='insert_data';
Parameters.CreateParameter('@x1', ftVariant, pdInput, 10, 0);
Parameters.CreateParameter('@x2', ftVariant, pdInput, 4000, 0);
Parameters.ParamByName('@x1').Value :=1;
Parameters.ParamByName('@x2').Value := 'UNISTR('/0031/003100ef/')) ';
ExecProc;
执行的结果就行了insert_data(1,'UNISTR('/0031/0031/00ef/.....')')
把第二个参数做为字符串来了
可想用的是 insert_data(1,UNISTR('/0031/0031/00ef/.....'));
请问各位如何调用啊,先谢谢
end;
这是ORALCE的存储过程 (在PL/SQL能正常执行)
CREATE OR REPLACE PROCEDURE insert_data
x1 number,
x2 marc_data.marc1%type
)
AS
BEGIN
INSERT INTO MARC_DATA (主键码,marc1)
VALUES (x1,x2);
END insert_data;
注marc1的类型是nvarchar2(2000)
在pl/sql中
insert_data(1,UNISTR('/0031/0031/00ef/.....')) ,能执行成功 因为unistr('字符串很长')
可是在delphi调用
with ADOStoredProc do
begin
Close;
Parameters.clear;
procedurename:='insert_data';
Parameters.CreateParameter('@x1', ftVariant, pdInput, 10, 0);
Parameters.CreateParameter('@x2', ftVariant, pdInput, 4000, 0);
Parameters.ParamByName('@x1').Value :=1;
Parameters.ParamByName('@x2').Value := 'UNISTR('/0031/003100ef/')) ';
ExecProc;
执行的结果就行了insert_data(1,'UNISTR('/0031/0031/00ef/.....')')
把第二个参数做为字符串来了
可想用的是 insert_data(1,UNISTR('/0031/0031/00ef/.....'));
请问各位如何调用啊,先谢谢
end;