|
Ok, this is weird. At first I was going to admonish you again for not selecting one of the ENCRYPT* functions I keep mentioning. However, there just may be an undocumented ENCRYPT function.
I used "Run SQL Scripts" and tried
VALUES EATDIRT ('abcde','k1', 1)
;
And I get: [SQL0204] EATDIRT in *LIBL type *N not found.
But if I try
VALUES ENCRYPT ('abcde','k1', 1)
I get: [SQL0171] Argument 3 of function ENCRYPT not valid. Cause . . . . . : The data type, length, or value of argument 3 of function ENCRYPT specified is not valid. Recovery . . . : Refer to the DB2 for IBM i SQL Reference topic collection in the Database category in the IBM i Information Center for more information on scalar functions. Correct the arguments specified for the function. Try the request again.
None of the ENCRYPT* family of functions appear in QSYS2.SYSFUNCS or in SYSIBM.SQLFUNCTIONS.
Now look at the documentation for these three functions:
ENCRYPT_AES
ENCRYPT_RC2
ENCRYPT_TDES
In all of these the third parameter is optional. The third parameter is not numeric. It is:
hint-string
An expression that returns a character string value with up to 32 bytes that will help data owners remember passwords (For example, 'Ocean' is a hint to remember 'Pacific').
To avoid this error:
[SQ20144] Encryption password length not valid. Cause . . . . . : The length of the encryption password must be from 6 to 127 characters.
I changed your example from
VALUES ENCRYPT ('abcde','k1')
To
VALUES ENCRYPT ('abcde','ihateohiostate')
;
And that actually works.
Now let's try the hint string:
VALUES ENCRYPT ('abcde', 'ihateohiostate', 'gomichigan')
This also works.
So try changing your program from
c/exec sql
c+ Declare c1 scroll cursor for
c+ select encrypt ('abcde','k1', 1) FROM lib1/FL1
C/END-EXEC
To:
c/exec sql
c+ Declare c1 scroll cursor for
c+ select encrypt ('abcde', 'ihateohiostate') FROM lib1/FL1
C/END-EXEC
And see if that works.
Caveat: I tend to avoid undocumented functions.
Rob Berendt
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.