您现在的位置: 爱51代码网 >> 范文 >> 文章正文
db2参数的自变量数据类型、长度或值不正确。参数名:""。  SQLSTATE=42815

db2参数的自变量数据类型、长度或值不正确。参数名:""。  SQLSTATE=42815

对字段进行加密时,如果字段存储不为二进制,则加密可以成功,但是解密是报错。
如果字段类型为二进制则可以解密成功,请问这是什么原因!

例:
create table test(test_Id intefer,test_value varchar(50));
DB20000I  SQL 命令成功完成。
insert into test values(1,encrypt('a',111222));
DB20000I  SQL 命令成功完成。
select test_id,decrypt_char(test_value,111222) from test;
SQL0171N  例程 "SYSIBM.DECRYPT" 的位置 "1"
中参数的自变量数据类型、长度或值不正确。参数名:""。  SQLSTATE=42815

将字段存储改为二进制:
delete from test;
alter table test alter column test_value set data type varchar(50) for bit data;
reorg table test;
insert into test values(1,encrypt('a',111222));
结果:
1 a

因为ENCRYPT函数返回的数据类型是 VARCHAR FOR BIT DATA,所以你不应该在表中将数据类型定义为VARCHAR. DECRYPT函数接受的参数也是 BIT DATA 的,所以你表定义中是VARCHAR时,说参数类型不匹配。

--因此 --加密字段必须用二进制存储

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    Failed to open eth0
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    DB2如何查询表存储过程等的D
    SQL1762N Unable to connect
    SQL 查询多条XML数据里面的某
    局域网内个别机器连不上SQL 
    Microsoft Corporation  Ent
    access解决条码扫描数据避免
    access怎样知道报表是否被完
    Access数据库中查询SELECT T
    access每格1秒刷新文本框数据
    C++产生CRC 对照码源代码
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |