I have field HIREDATE char(10)
SELECT DATE( HIREDATE) FROM EMP_SCREEN_EDIT;
1
----------
12/27/1999
1 record(s) selected.
I updated Hiredate using SP - Maked it invalid:
CALL execute_immediate('UPDATE EMP_SCREEN_EDIT SET HIREDATE =
''12/77/1999''',?)
Value of output parameters
--------------------------
Parameter Name : OUT_SQLCODE
Parameter Value : 0
Return Status = 0
After Update:
SELECT HIREDATE FROM EMP_SCREEN_EDIT
HIREDATE
----------
12/77/1999
SELECT DATE(HIREDATE) FROM EMP_SCREEN_EDIT
the string representation of a datetime value is out of range
sqlcode: -181
Now 2 selects using SP:
CALL execute_immediate('SELECT HIREDATE FROM EMP_SCREEN_EDIT',?)
Value of output parameters
--------------------------
Parameter Name : OUT_SQLCODE
Parameter Value : -84
Return Status = 0
CALL execute_immediate('SELECT DATE(HIREDATE) FROM EMP_SCREEN_EDIT',?)
Value of output parameters
--------------------------
Parameter Name : OUT_SQLCODE
Parameter Value : -84
Return Status = 0
Why Stored Procedure returns in both cases -84
What is going on???
--
Message posted via http://www.dbmonster.com
EXECUTE IMMEDIATE can't be used for SELECTs. You'll need to use a
CURSOR instead, e.g.,
<stuff here>
DECLARE C_RETURN CURSOR WITH RETURN FOR S_RETURN;--
PREPARE S_RETURN FROM in_stmt;--
OPEN C_RETURN;--
<stuff here>
--Jeff
SQL0084N An EXECUTE IMMEDIATE statement contains a SELECT or VALUES
statement.
Explanation:
A SELECT or VALUES statement was used in an EXECUTE IMMEDIATE statement.
The statement cannot be processed.
User response:
The implied function is not supported. Prepare the SELECT or VALUES
statement. Then use OPEN, FETCH, and CLOSE.
sqlcode: -84
sqlstate: 42612
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
CHECJ_DATE IS UDF FOR DATE EDIT IN FORMAT 'YYYYMMDD'
AND IT IS RETURNIG MESSAGE INVALID DATE OR VALID DATE.
Thank you Tonkuma for this UDF.
Serge Rielau wrote:
>db2 => ? SQL0084;
>
>SQL0084N An EXECUTE IMMEDIATE statement contains a SELECT or VALUES
> statement.
>
>Explanation:
>
>A SELECT or VALUES statement was used in an EXECUTE IMMEDIATE statement.
>
>The statement cannot be processed.
>
>User response:
>
>The implied function is not supported. Prepare the SELECT or VALUES
>statement. Then use OPEN, FETCH, and CLOSE.
>
> sqlcode: -84
>
> sqlstate: 42612
--
Message posted via DBMonster.com
http://www.dbmonster.com/Uwe/Forums.aspx/ibm-db2/200807/1