Dynamisches SQL unter MFCOBOL

Sequenz mit nextval holen

       IDENTIFICATION DIVISION.
       PROGRAM-ID.     GETNEXTS.                                         
       AUTHOR.         NEV.                                             
       DATE-WRITTEN.   24.11.2010.                                      
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER. IBM-PC.
       OBJECT-COMPUTER. IBM-PC.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.
           EXEC SQL
             INCLUDE "SQLCA"
           END-EXEC.
           EXEC SQL
             INCLUDE "system.error_codes"
           END-EXEC.
           EXEC SQL
             INCLUDE "user.error_codes"
           END-EXEC.
       01  ARG-SQLCODE PIC S9(9) USAGE IS COMP VALUE IS 0.
       01  ARG-SQLERRMC PIC X(79) VALUE IS SPACES.
       01  XTRA-SQLCODE PIC S9(9) USAGE IS COMP VALUE IS 0.
       01  XTRA-SQLERRMC PIC X(79) VALUE IS SPACES.
       01  FAL-END-OF-PROGRAM-SWITCH PIC X IS EXTERNAL.
           88 FAL-END-OF-PROGRAM VALUE IS "Y" FALSE IS "N".
       01  FAL-DISPLAY-MESSAGE PIC X(1200).
       01  FAL-SEVERITY PIC X(10) VALUE IS "WARNING".
       01  FAL-PROG-ID PIC X(7) VALUE IS "SYSPARA".
       01  FAL-CURRENT-PROC PIC X(80) VALUE IS SPACES.
       01  FAL-NUMERIC-SEPARATORS PIC XX VALUE IS ".,".
       01  FAL-CALLED-PROGRAM PIC X(310) VALUE IS "BAD-CALL".
       01  FAL-DEBUG-USER PIC X IS EXTERNAL.
       01  FAL-DEBUG-PROGRAM PIC X IS EXTERNAL.
       01  FAL-DEBUG-TIMESTAMP.
           03 FAL-DTS-HOURS PIC 99.
           03 FAL-DTS-MINUTES PIC 99.
           03 FAL-DTS-SECONDS PIC 99.
           03 FAL-DTS-HUNDREDTHS PIC 99.
       01  FAL-RETURN-CODE PIC S9(10).
      * These are used for the Koala screen interface
      @    INCLUDE "screens/koala-linkage.cpy" END-INCLUDE
      @    INCLUDE "screens/koalasup-linkage.cpy" END-INCLUDE
      @    INCLUDE "screens/koalacpt-linkage.cpy" END-INCLUDE
       01  FAL-SCREEN-TIMER PIC 9(4) VALUE IS 0.
       01  FAL-CURSOR-POS.
           03 FAL-CP-COL PIC S9(4) USAGE IS BINARY.
           03 FAL-CP-ROW PIC S9(4) USAGE IS BINARY.
      * Bring in the transfer block used by the I/O modules
           COPY "io-block.cpy".
       01  FAL-MUST-INITIALIZE PIC X VALUE IS "Y".
                                                                 
        LINKAGE SECTION.
        01  SEQ_NAME      PIC X(32).                         
        01  SEQ_RET_VAL   PIC 9(12).                         

       PROCEDURE DIVISION  USING seq_name, seq_ret_val.
       VERARBEITUNG.                                                    
mbd        EXEC SQL EXECUTE     
mbd          BEGIN              
mbd            :SEQ_RET_VAL :=  
mbd              GET_NEXT_SEQ(:SEQ_NAME);                      
mbd          END;                                                     
mbd        END-EXEC.                                                  
        
PL/SQL:

CREATE OR REPLACE function FVV.get_next_seq(p_seq varchar2) return number is
  sql_stat    varchar2(2000);
  ret_next_val number;
begin  
  sql_stat := 'SELECT '||rtrim(p_seq)||'.nextval FROM dual';
  EXECUTE IMMEDIATE sql_stat INTO ret_next_val;
  return ret_next_val;
end;
/