home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / orarex.zip / SAMPLE1.CMD < prev    next >
OS/2 REXX Batch file  |  1995-06-28  |  3KB  |  104 lines

  1. /*** rexx ********************************************************************/
  2. /*                                                                           */
  3. /* SAMPLE1.CMD - Oracle-REXX Interface Sample                                */
  4. /*                                                                           */
  5. /* Sample REXX command file to demonstrate dynamic SQL methods 1,2 and 3.    */
  6. /*                                                                           */
  7. /*****************************************************************************/
  8.  
  9. CALL RXFUNCADD "SQLEXEC", "RXORA", "SQLEXEC"
  10.  
  11. /*---------------------------------------------------------------------------*/
  12.  
  13. SAY "Connecting as SCOTT/TIGER"
  14.  
  15. user     = "SCOTT"
  16. password = "TIGER"
  17. connect  = "2:"
  18.  
  19. CALL SQLEXEC "CONNECT :user IDENTIFIED BY :password USING :connect"
  20. CALL CheckSQLReturn
  21.  
  22. /*--Dynamic SQL Method 1-----------------------------------------------------*/
  23.  
  24. SAY "Creating table TEMP"
  25.  
  26. CALL SQLEXEC "EXECUTE IMMEDIATE create table temp (empno number(4), ename varchar2(40), dept number(4))"
  27. CALL CheckSQLReturn
  28.  
  29. /*--Dynamic SQL Method 2-----------------------------------------------------*/
  30.  
  31. SAY "Adding data to table TEMP"
  32.  
  33. CALL SQLEXEC "DECLARE stmt1 STATEMENT"
  34. CALL CheckSQLReturn
  35.  
  36. CALL SQLEXEC "PREPARE stmt1 FROM insert into temp(empno,ename,dept) values(:a,:b,:c)"
  37. CALL CheckSQLReturn
  38.  
  39. empno = 1021
  40. ename = 'David'
  41. dept  = 20
  42. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  43. CALL CheckSQLReturn
  44.  
  45. empno = 1022
  46. ename = 'Beverly'
  47. dept  = 20
  48. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  49. CALL CheckSQLReturn
  50.  
  51. /*--Dynamic SQL Method 3-----------------------------------------------------*/
  52.  
  53. SAY "Query data from table TEMP"
  54.  
  55. CALL SQLEXEC "DECLARE stmt2 STATEMENT"
  56. CALL CheckSQLReturn
  57.  
  58. CALL SQLEXEC "DECLARE csr2 CURSOR FOR stmt2"
  59. CALL CheckSQLReturn
  60.  
  61. CALL SQLEXEC "PREPARE stmt2 FROM select empno, ename from temp where dept=:a"
  62. CALL CheckSQLReturn
  63.  
  64. dept = 20
  65. CALL SQLEXEC "OPEN csr2 USING :dept"
  66. CALL CheckSQLReturn
  67.  
  68. CALL SQLEXEC "FETCH csr2 INTO :empno, :ename"
  69. DO WHILE (result = 0) & (sqlca.sqlcode = 0)
  70.   SAY right(empno,8) ename
  71.   CALL SQLEXEC "FETCH csr2 INTO :empno, :ename"
  72. END
  73.  
  74. CALL SQLEXEC "CLOSE csr2"
  75. CALL CheckSQLReturn
  76.  
  77. /*---------------------------------------------------------------------------*/
  78.  
  79. SAY "Drop table TEMP"
  80.  
  81. CALL SQLEXEC "EXECUTE IMMEDIATE drop table temp"
  82. CALL CheckSQLReturn
  83.  
  84. /*---------------------------------------------------------------------------*/
  85.  
  86. SAY "Disconnect"
  87.  
  88. CALL SQLEXEC "ROLLBACK RELEASE"
  89. CALL CheckSQLReturn
  90.  
  91. EXIT
  92.  
  93. /*---------------------------------------------------------------------------*/
  94.  
  95. CheckSQLReturn:
  96.   IF result <> 0 THEN
  97.     SAY "Invalid embedded SQL statement ("result")."
  98.   ELSE IF sqlca.sqlcode <> 0 THEN
  99.     SAY sqlca.sqlerrmc
  100.   IF (result <> 0) | (sqlca.sqlcode <> 0) THEN
  101.     EXIT
  102.   RETURN
  103.  
  104.