Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phpdave/4193726371fb18bead5f to your computer and use it in GitHub Desktop.
Save phpdave/4193726371fb18bead5f to your computer and use it in GitHub Desktop.
Testing out a prepare and execute PHP DB2 statement via a SQL stored procedure running on IBM i Navigator's Run SQL to debug a ZF2 bug
CREATE OR REPLACE PROCEDURE MYLIB.Album_Fetch_By_ID (IN ParameterID INTEGER)
DYNAMIC RESULT SETS 1
SET OPTION ALWBLK = *ALLREAD
BEGIN
DECLARE sql_statement VARCHAR(1000);
DECLARE sql_query VARCHAR(1000);
DECLARE ibmicmd_addlible_mylib CHAR ( 300 ) ;
DECLARE sql_exception_continue_message CHAR(20);
DECLARE cursor_with_resultset CURSOR FOR sql_statement;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
SET sql_exception_continue_message = 'ok';
CALL QSYS . QCMDEXC ('ADDLIBLE MYLIB' ) ;
SET sql_query = ' SELECT ALBUM.*
FROM ALBUM
WHERE ID = ?' ;
PREPARE sql_statement FROM sql_query ;
OPEN cursor_with_resultset USING ParameterID;
RETURN ;
END;
CALL MYLIB.Album_Fetch_By_ID(4);
/* Creating table MYLIB.ALBUM */
DROP Table MYLIB.ALBUM;
CREATE TABLE MYLIB.ALBUM (
ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO ORDER, NO CYCLE, NO MINVALUE, NO MAXVALUE, CACHE 20) NOT HIDDEN ,
ARTIST VARCHAR (100) NOT NULL NOT HIDDEN ,
TITLE VARCHAR (100) NOT NULL NOT HIDDEN ,
PRICE DECIMAL(5, 0) NOT NULL NOT HIDDEN ,
PRIMARY KEY (ID)
) NOT VOLATILE ;
LABEL ON TABLE MYLIB.ALBUM IS 'Test table for ZF2' ;
INSERT INTO MYLIB.ALBUM (ARTIST, TITLE, PRICE)
VALUES ('The Military Wives', 'In My Dreams',1);
INSERT INTO MYLIB.ALBUM (ARTIST, TITLE, PRICE)
VALUES ('Adele', '21',2);
INSERT INTO MYLIB.ALBUM (ARTIST, TITLE, PRICE)
VALUES ('Bruce Springsteen', 'Wrecking Ball (Deluxe)',3);
INSERT INTO MYLIB.ALBUM (ARTIST, TITLE, PRICE)
VALUES ('Lana Del Rey', 'Born To Die',4);
INSERT INTO MYLIB.ALBUM (ARTIST, TITLE, PRICE)
VALUES ('Gotye', 'Making Mirrors',5);
GRANT SELECT,INSERT,UPDATE,DELETE ON MYLIB.ALBUM TO MYUSER;
SELECT * FROM MYLIB.ALBUM;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment