Wenn ich in einer SQL Procedure eine "GLOBAL TEMPORARY TABLE" definiere und die definition eine Variable enthält bekomme ich einen SQL0312 RC9 Fehler.
Geht das gar nicht oder mache ich in der definition etwas falsch?
oder gibts eine umgehung?
Hier als Beispiel eine SQL-Procedur (es geht um die variable BASEDIR):
Code:CREATE OR REPLACE PROCEDURE TEST.CHKIFSDIR ( ) LANGUAGE SQL SPECIFIC TEST.CHKIFSDIR NOT DETERMINISTIC MODIFIES SQL DATA CALLED ON NULL INPUT CONCURRENT ACCESS RESOLUTION DEFAULT SET OPTION ALWBLK = *ALLREAD , ALWCPYDTA = *OPTIMIZE , COMMIT = *NONE , DECRESULT = (31, 31, 00) , DFTRDBCOL = *NONE , DYNDFTCOL = *NO , DYNUSRPRF = *USER , SRTSEQ = *HEX BEGIN DECLARE BASEDIR VARCHAR ( 70 ) ; SET BASEDIR = '/home/Test/' ; SET BASEDIR = TRIM(BASEDIR); DECLARE GLOBAL TEMPORARY TABLE GENIFS0 AS ( SELECT SUBSTR(TRIM(PATH_NAME), LOCATE_IN_STRING(TRIM(PATH_NAME),'/',-1) + 1, LENGTH(TRIM(PATH_NAME))) AS GENDIR, PATH_NAME FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => BASEDIR, -- here is the error, variable is not allowed SUBTREE_DIRECTORIES => 'YES', OBJECT_TYPE_LIST => '*ALLDIR', IGNORE_ERRORS => 'YES' )) t ) WITH DATA WITH REPLACE ; END;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten

Bookmarks