CREATE OR REPLACE PROCEDURE YST.DB_SHCL_PRE
IS
d1 date;d2 date;
s1 varchar2(20);s2 varchar2(20);s3 varchar2(20);
v1 number;v2 number;v3 number;v4 number;v5 number;
BEGIN
s2 := '22879';
select zz-pz-kz,credate into v3,d2 from yst_jzdetail@jxorcl where ljx = s2;
//...
END;
/
以上是PRE中的一段,jxorcl是dblink连接到另个oracle数据库,版本817都一样的。
就是在查询的时候为什么查不到数据? 按以下方法却查的到。
SQL> select zz-pz-kz,credate from yst_jzdetail@jxorcl where ljx = '22879'; ZZ-PZ-KZ CREDATE
---------- -----------
33750 2009-10-17SQL>
IS
d1 date;d2 date;
s1 varchar2(20);s2 varchar2(20);s3 varchar2(20);
v1 number;v2 number;v3 number;v4 number;v5 number;
BEGIN
s2 := '22879';
select zz-pz-kz,credate into v3,d2 from yst_jzdetail@jxorcl where ljx = s2;
//...
END;
/
以上是PRE中的一段,jxorcl是dblink连接到另个oracle数据库,版本817都一样的。
就是在查询的时候为什么查不到数据? 按以下方法却查的到。
SQL> select zz-pz-kz,credate from yst_jzdetail@jxorcl where ljx = '22879'; ZZ-PZ-KZ CREDATE
---------- -----------
33750 2009-10-17SQL>
select zz-pz-kz into v3,credate into d2 from yst_jzdetail@jxorcl where ljx = s2;
.....
这样呢?
authid current_user试试这样写
connect,dba,resource
direct倒没有
select zz-pz-kz,credate into v3,d2 from yst_jzdetail@jxorcl where ljx = s2;
直接换成
select zz-pz-kz,credate into v3,d2 from yst_jzdetail@jxorcl where ljx = '22879';
也通得过。
s2 := '22879';
execute immediate 'select zz-pz-kz,credate from yst_jzdetail@jxorcl where ljx = '||s2 into v3,d2 ; 会通过么?
select zz-pz-kz,credate into v3,d2 from yst_jzdetail@jxorcl where to_number(ljx) = v2;
虽然功能实现了,但还是很糊涂。