我写了一个存储过程,在sql plus worksheet中执行下面的调用代码一切正常,汉字也不乱码,但在从delphi中调用这个存储过程时,却出现了下面的现象:
var mannum varchar2(10);
exec kbmanager.insert_kdata('0001','测试','er','中国',:mannum);
print mannum;
commit;发现前三个参数插入正常,而第四个参数'中国'插入到数据库中却出现一串很长的方格,根本不是我插入的数据,请问是怎么回事,如何解决?

解决方案 »

  1.   

    哪位高手来看看,我在sqlplus 里面调用正常,但用delphi7调用存储过程则出现有的字段正常保存,而有的字段是乱码。什么原因?大家指点
      

  2.   

    你的oracle有问题,我遇到过这种情况,有时还会查询出来就成乱码了。
      

  3.   

    将字符串类型改为VARCHAR->NVARCHAR2;CHAR -> NCHAR 试下!
      

  4.   

    我发现总会出现下面的毛病:
    比如testid char(4),如果我通过程序向表中增加记录,字段值是两个汉字,总会出现值大于列宽的类似提示,为什么,是字符值转换的关系吗?