SQL PLUS Session Environment Oracle PLSQL Tutorial

SQL>
SQL> create table myTable1 as select * from all_objects where rownum < 50;
Table created.
SQL> create table myTable2 as select * from all_objects where rownum <= 50;
Table created.
SQL>
SQL> alter table myTable1 add constraint myTable1_pk primary key(object_id);
Table altered.
SQL> alter table myTable2 add constraint myTable2_pk primary key(object_id);
Table altered.
SQL>
SQL> analyze table myTable1 compute statistics
  2  for table for all indexes for all indexed columns;
Table analyzed.
SQL>
SQL> analyze table myTable2 compute statistics
  2  for table for all indexes for all indexed columns;
Table analyzed.
SQL>
SQL> create or replace function get_data( p_object_id in number ) return varchar2
  2  is
  3      l_object_name myTable2.object_name%type;
  4  begin
  5      select object_name into l_object_name
  6        from myTable2
  7       where object_id = p_object_id;
  8      return l_object_name;
  9  exception
 10      when no_data_found then
 11          return NULL;
 12  end;
 13  /
Function created.
SQL>
SQL> select a.object_id, a.object_name oname1, b.object_name oname2
  2    from myTable1 a, myTable2 b
  3   where a.object_id = b.object_id(+);
 OBJECT_ID ONAME1                         ONAME2
---------- ------------------------------ ------------------------------
        20 ICOL$                          ICOL$
        44 I_USER1                        I_USER1
        28 CON$                           CON$
        15 UNDO$                          UNDO$
        29 C_COBJ#                        C_COBJ#
         3 I_OBJ#                         I_OBJ#
        25 PROXY_ROLE_DATA$               PROXY_ROLE_DATA$
        39 I_IND1                         I_IND1
        51 I_CDEF2                        I_CDEF2
        26 I_PROXY_ROLE_DATA$_1           I_PROXY_ROLE_DATA$_1
        17 FILE$                          FILE$
 OBJECT_ID ONAME1                         ONAME2
---------- ------------------------------ ------------------------------
        13 UET$                           UET$
         9 I_FILE#_BLOCK#                 I_FILE#_BLOCK#
        41 I_FILE1                        I_FILE1
        48 I_CON1                         I_CON1
        38 I_OBJ3                         I_OBJ3
         7 I_TS#                          I_TS#
        53 I_CDEF4                        I_CDEF4
        19 IND$                           IND$
        14 SEG$                           SEG$
         6 C_TS#                          C_TS#
        42 I_FILE2                        I_FILE2
 OBJECT_ID ONAME1                         ONAME2
---------- ------------------------------ ------------------------------
        21 COL$                           COL$
        43 I_TS1                          I_TS1
        35 I_UNDO2                        I_UNDO2
         5 CLU$                           CLU$
        23 PROXY_DATA$                    PROXY_DATA$
        24 I_PROXY_DATA$                  I_PROXY_DATA$
        36 I_OBJ1                         I_OBJ1
        46 I_COL2                         I_COL2
        37 I_OBJ2                         I_OBJ2
        54 I_CCOL1                        I_CCOL1
        16 TS$                            TS$
 OBJECT_ID ONAME1                         ONAME2
---------- ------------------------------ ------------------------------
         8 C_FILE#_BLOCK#                 C_FILE#_BLOCK#
        10 C_USER#                        C_USER#
        34 I_UNDO1                        I_UNDO1
        56 BOOTSTRAP$                     BOOTSTRAP$
        12 FET$                           FET$
        33 I_TAB1                         I_TAB1
        32 CCOL$                          CCOL$
        22 USER$                          USER$
        49 I_CON2                         I_CON2
        30 I_COBJ#                        I_COBJ#
        18 OBJ$                           OBJ$
 OBJECT_ID ONAME1                         ONAME2
---------- ------------------------------ ------------------------------
        47 I_COL3                         I_COL3
         2 C_OBJ#                         C_OBJ#
         4 TAB$                           TAB$
        31 CDEF$                          CDEF$
        50 I_CDEF1                        I_CDEF1
49 rows selected.
SQL>
SQL> select object_id, object_name oname1, get_data(object_id) oname2
  2    from myTable1;
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        20 ICOL$
ICOL$
        44 I_USER1
I_USER1
        28 CON$
CON$
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        15 UNDO$
UNDO$
        29 C_COBJ#
C_COBJ#
         3 I_OBJ#
I_OBJ#
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        25 PROXY_ROLE_DATA$
PROXY_ROLE_DATA$
        39 I_IND1
I_IND1
        51 I_CDEF2
I_CDEF2
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        26 I_PROXY_ROLE_DATA$_1
I_PROXY_ROLE_DATA$_1
        17 FILE$
FILE$
        13 UET$
UET$
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
         9 I_FILE#_BLOCK#
I_FILE#_BLOCK#
        41 I_FILE1
I_FILE1
        48 I_CON1
I_CON1
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        38 I_OBJ3
I_OBJ3
         7 I_TS#
I_TS#
        53 I_CDEF4
I_CDEF4
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        19 IND$
IND$
        14 SEG$
SEG$
         6 C_TS#
C_TS#
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        42 I_FILE2
I_FILE2
        21 COL$
COL$
        43 I_TS1
I_TS1
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        35 I_UNDO2
I_UNDO2
         5 CLU$
CLU$
        23 PROXY_DATA$
PROXY_DATA$
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        24 I_PROXY_DATA$
I_PROXY_DATA$
        36 I_OBJ1
I_OBJ1
        46 I_COL2
I_COL2
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        37 I_OBJ2
I_OBJ2
        54 I_CCOL1
I_CCOL1
        16 TS$
TS$
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
         8 C_FILE#_BLOCK#
C_FILE#_BLOCK#
        10 C_USER#
C_USER#
        34 I_UNDO1
I_UNDO1
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        56 BOOTSTRAP$
BOOTSTRAP$
        12 FET$
FET$
        33 I_TAB1
I_TAB1
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        32 CCOL$
CCOL$
        22 USER$
USER$
        49 I_CON2
I_CON2
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        30 I_COBJ#
I_COBJ#
        18 OBJ$
OBJ$
        47 I_COL3
I_COL3
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
         2 C_OBJ#
C_OBJ#
         4 TAB$
TAB$
        31 CDEF$
CDEF$
 OBJECT_ID ONAME1
---------- ------------------------------
ONAME2
--------------------------------------------------------------------------------
        50 I_CDEF1
I_CDEF1
49 rows selected.
SQL>
SQL> begin
  2
  3      for x in ( select a.object_id,
  4                        a.object_name oname1,
  5                        b.object_name oname2
  6                   from myTable1 a, myTable2 b
  7                  where a.object_id = b.object_id(+) )
  8      loop
  9          null;
 10      end loop;
 11
 12      for x in ( select object_id,
 13                        object_name oname1,
 14                        get_data(object_id) oname2
 15                   from myTable1 )
 16      loop
 17          null;
 18      end loop;
 19
 20  end;
 21  /
PL/SQL procedure successfully completed.
SQL>
SQL> drop table myTable1;
Table dropped.
SQL> drop table myTable2;
Table dropped.
SQL>