| /* |
| * $Id: plsql.sql 826 2009-01-17 05:04:52Z unsaved $ |
| * |
| * This example is copied from the "Simple Programs in PL/SQL" |
| * example by Yu-May Chang, Jeff Ullman, Prof. Jennifer Widom at |
| * the Standord University Database Group's page |
| * http://www-db.stanford.edu/~ullman/fcdb/oracle/or-plsql.html . |
| * I have only removed some blank lines (in case somebody wants to |
| * copy this code interactively-- because you can't use blank |
| * lines inside of SQL commands in non-raw mode SqlTool when running |
| * it interactively); and, at the bottom I have replaced the |
| * client-specific, non-standard command "run;" with SqlTool's |
| * corresponding command ".;" and added a plain SQL SELECT command |
| * to show whether the PL/SQL code worked. - Blaine |
| */ |
| |
| CREATE TABLE T1( |
| e INTEGER, |
| f INTEGER |
| ); |
| |
| DELETE FROM T1; |
| |
| INSERT INTO T1 VALUES(1, 3); |
| |
| INSERT INTO T1 VALUES(2, 4); |
| |
| /* Above is plain SQL; below is the PL/SQL program. */ |
| DECLARE |
| |
| a NUMBER; |
| |
| b NUMBER; |
| |
| BEGIN |
| |
| SELECT e,f INTO a,b FROM T1 WHERE e>1; |
| |
| INSERT INTO T1 VALUES(b,a); |
| |
| END; |
| |
| .; |
| /** The statement on the previous line, ".;" is SqlTool specific. |
| * This command says to save the input up to this point to the |
| * edit buffer and send it to the database server for execution. |
| * I added the SELECT statement below to give imm |
| */ |
| |
| /* This should show 3 rows, one containing values 4 and 2 (in this order)...*/ |
| SELECT * FROM t1; |