想加密,在procedure里有这么几句代码
DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(
input_string => :en_in,
key_string => :en_key,
encrypted_string => :en_out
);
请问既然是procedure往procedure里传参数,为什么不写成
DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(:en_in,:en_key,:en_out);查了oracle的说明,只知道是传字符串型的规定格式
...
谁能来说说为什么一定要写成input_string => :en_in ??
还有 =>的含义?
谢谢.

解决方案 »

  1.   

    写成DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(:en_in,:en_key,:en_out);试试
      

  2.   

    试过的,出错的
    不这么写不行
    DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT( 
    input_string => :en_in, 
    key_string => :en_key, 
    encrypted_string => :en_out 
    ); 
    而这种
    input_string => :en_in,
    传值方法又不理解
    下午查的时候在引用package的例子中看到过这种传值方式
    呵呵,会不会和package有关
    晕了
    所以提问咯
      

  3.   

    你desc 下这个包应该是有多个参数,我记得要是指定的参数不是顺序的前几个,就要用 =》这种方式
      

  4.   

    跟这个包有关系,里面有多个函数和过程重名的:要是不指定的话,不知道调用的是那个存储过程SQL> desc dbms_obfuscation_toolkit;
    PROCEDURE DES3DECRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     DECRYPTED_DATA                 RAW                     OUT
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV                             RAW                     IN     DEFAULT
    FUNCTION DES3DECRYPT RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV                             RAW                     IN     DEFAULT
    PROCEDURE DES3DECRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     DECRYPTED_STRING               VARCHAR2                OUT
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV_STRING                      VARCHAR2                IN     DEFAULT
    FUNCTION DES3DECRYPT RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV_STRING                      VARCHAR2                IN     DEFAULT
    PROCEDURE DES3ENCRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     ENCRYPTED_DATA                 RAW                     OUT
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV                             RAW                     IN     DEFAULT
    FUNCTION DES3ENCRYPT RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV                             RAW                     IN     DEFAULT
    PROCEDURE DES3ENCRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     ENCRYPTED_STRING               VARCHAR2                OUT
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV_STRING                      VARCHAR2                IN     DEFAULT
    FUNCTION DES3ENCRYPT RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     IV_STRING                      VARCHAR2                IN     DEFAULT
    PROCEDURE DES3GETKEY
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     SEED                           RAW                     IN
     KEY                            RAW                     OUT
    FUNCTION DES3GETKEY RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     SEED                           RAW                     IN
    PROCEDURE DES3GETKEY
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     SEED_STRING                    VARCHAR2                IN
     KEY                            VARCHAR2                OUT
    FUNCTION DES3GETKEY RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     WHICH                          BINARY_INTEGER          IN     DEFAULT
     SEED_STRING                    VARCHAR2                IN
    PROCEDURE DESDECRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     DECRYPTED_DATA                 RAW                     OUT
    FUNCTION DESDECRYPT RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
    PROCEDURE DESDECRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     DECRYPTED_STRING               VARCHAR2                OUT
    FUNCTION DESDECRYPT RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
    PROCEDURE DESENCRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
     ENCRYPTED_DATA                 RAW                     OUT
    FUNCTION DESENCRYPT RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     KEY                            RAW                     IN
    PROCEDURE DESENCRYPT
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
     ENCRYPTED_STRING               VARCHAR2                OUT
    FUNCTION DESENCRYPT RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     KEY_STRING                     VARCHAR2                IN
    PROCEDURE DESGETKEY
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     SEED                           RAW                     IN
     KEY                            RAW                     OUT
    FUNCTION DESGETKEY RETURNS RAW
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     SEED                           RAW                     IN
    PROCEDURE DESGETKEY
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     SEED_STRING                    VARCHAR2                IN
     KEY                            VARCHAR2                OUT
    FUNCTION DESGETKEY RETURNS VARCHAR2
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     SEED_STRING                    VARCHAR2                IN
    PROCEDURE MD5
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
     CHECKSUM                       RAW(16)                 OUT
    FUNCTION MD5 RETURNS RAW(16)
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT                          RAW                     IN
    PROCEDURE MD5
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                IN
     CHECKSUM_STRING                VARCHAR2(16)            OUT
    FUNCTION MD5 RETURNS VARCHAR2(16)
    参数名称                       类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
     INPUT_STRING                   VARCHAR2                INSQL>
      

  5.   

    包里面有两个过程是重名的,就参数不同
    PROCEDURE DESENCRYPT
    参数名称                      类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
    INPUT                          RAW                    IN
    KEY                            RAW                    IN
    ENCRYPTED_DATA                RAW                    OUT 
    PROCEDURE DESENCRYPT
    参数名称                      类型                    输入/输出默认值?
    ------------------------------ ----------------------- ------ --------
    INPUT_STRING                  VARCHAR2                IN
    KEY_STRING                    VARCHAR2                IN
    ENCRYPTED_STRING              VARCHAR2                OUT 
      

  6.   

    恍然大悟,c4313848说的有道理
    准备结帖再问句,执行desc dbms_obfuscation_toolkit;的时候
    你怎么让他把结果不一下子全部显示出来,分批显示呢
    呵呵
      

  7.   

    这个我就不知道了,
    以前
    des dbms_obfuscation_toolkit.DESENCRYPT
    就可以显示包里面的具体的存储过程,这次可能也是因为有重名的这样显示就报错了
      

  8.   

    不是,我的意思是说执行desc dbms_obfuscation_toolkit;之后
    系统自动会显示出所有的查询内容内容太多了,我想让它分批显示出来那命令怎么打呵呵
      

  9.   

    你说的可能是unix 上 more的功能,这个我不知道