<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSQL_Plus%2Fvariable</id>
		<title>Oracle PL/SQL/SQL Plus/variable - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSQL_Plus%2Fvariable"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/SQL_Plus/variable&amp;action=history"/>
		<updated>2026-05-26T15:44:51Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/SQL_Plus/variable&amp;diff=1675&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/SQL_Plus/variable&amp;diff=1675&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/SQL_Plus/variable&amp;diff=1676&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/SQL_Plus/variable&amp;diff=1676&amp;oldid=prev"/>
				<updated>2010-05-26T09:58:37Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Bind variables can be declared in your SQL*Plus script,Preface a bind variable with a colon to reference it in a PL/SQL block==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; VARIABLE  s_table_name  varchar2(30)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    :s_table_name := &amp;quot;emp&amp;quot;;&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bind variables can even be referenced by SQL queries==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; VARIABLE  s_table_name  varchar2(30)&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    :s_table_name := &amp;quot;emp&amp;quot;;&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; &lt;br /&gt;
SQL&amp;gt; SELECT index_name&lt;br /&gt;
  2    FROM user_indexes&lt;br /&gt;
  3   WHERE table_name = :s_table_name;&lt;br /&gt;
no rows selected&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET SERVEROUTPUT ON&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2    DBMS_OUTPUT.PUT_LINE(:s_table_name);&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
emp&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define variable and print its value out==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt; VARIABLE x NUMBER&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2     :x := 1;&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; PRINT :x;&lt;br /&gt;
         X&lt;br /&gt;
----------&lt;br /&gt;
         1&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define variable and set value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; VARIABLE ename VARCHAR2(30)&lt;br /&gt;
SQL&amp;gt; EXECUTE :ename := &amp;quot;Mike&amp;quot;;&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; SELECT :ename FROM dual;&lt;br /&gt;
Mike&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define variable and use it in sql statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP(&lt;br /&gt;
  2      EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  3      ENAME VARCHAR2(10),&lt;br /&gt;
  4      JOB VARCHAR2(9),&lt;br /&gt;
  5      MGR NUMBER(4),&lt;br /&gt;
  6      startDate DATE,&lt;br /&gt;
  7      SAL NUMBER(7, 2),&lt;br /&gt;
  8      COMM NUMBER(7, 2),&lt;br /&gt;
  9      DEPTNO NUMBER(2)&lt;br /&gt;
 10  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;, 7902,TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7521, &amp;quot;WARD&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;2-APR-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7900, &amp;quot;E&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE DEPT(&lt;br /&gt;
  2      DEPTNO NUMBER(2),&lt;br /&gt;
  3      DNAME VARCHAR2(14),&lt;br /&gt;
  4      LOC VARCHAR2(13)&lt;br /&gt;
  5  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (10, &amp;quot;ACCOUNTING&amp;quot;, &amp;quot;NEW YORK&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (20, &amp;quot;RESEARCH&amp;quot;, &amp;quot;DALLAS&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (30, &amp;quot;SALES&amp;quot;, &amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (40, &amp;quot;OPERATIONS&amp;quot;, &amp;quot;BOSTON&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select empno, ename, sal from emp where deptno = 10;&lt;br /&gt;
     EMPNO ENAME             SAL&lt;br /&gt;
---------- ---------- ----------&lt;br /&gt;
      7782 CLARK            2450&lt;br /&gt;
      7839 KING             5000&lt;br /&gt;
      7934 MILLER           1300&lt;br /&gt;
SQL&amp;gt; variable empno number&lt;br /&gt;
SQL&amp;gt; variable ename varchar2(20)&lt;br /&gt;
SQL&amp;gt; variable sal number&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; exec :empno := 7934; :ename := &amp;quot;MILLER&amp;quot;; :sal := 1300;&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select empno, ename, sal&lt;br /&gt;
  2  from emp&lt;br /&gt;
  3  where empno = :empno&lt;br /&gt;
  4    and ename = :ename&lt;br /&gt;
  5    and sal = :sal&lt;br /&gt;
  6    for update nowait&lt;br /&gt;
  7  /&lt;br /&gt;
     EMPNO ENAME             SAL&lt;br /&gt;
---------- ---------- ----------&lt;br /&gt;
      7934 MILLER           1300&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table dept;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==refcursor varible==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set echo on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t as select * from all_users;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; variable x refcursor&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; begin&lt;br /&gt;
  2     open :x for select * from t;&lt;br /&gt;
  3  end;&lt;br /&gt;
  4  /&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; delete from t;&lt;br /&gt;
14 rows deleted.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; commit;&lt;br /&gt;
Commit complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; print x&lt;br /&gt;
USERNAME                          USER_ID CREATED&lt;br /&gt;
------------------------------ ---------- --------------------&lt;br /&gt;
sqle                                 44 13-JUN-2008 20:30:45&lt;br /&gt;
FLOWS_020100                           35 07-FEB-2006 22:52:43&lt;br /&gt;
FLOWS_FILES                            34 07-FEB-2006 22:52:43&lt;br /&gt;
HR                                     33 07-FEB-2006 22:51:21&lt;br /&gt;
MDSYS                                  32 07-FEB-2006 22:44:47&lt;br /&gt;
ANONYMOUS                              28 07-FEB-2006 22:40:15&lt;br /&gt;
XDB                                    27 07-FEB-2006 22:40:14&lt;br /&gt;
CTXSYS                                 25 07-FEB-2006 22:38:38&lt;br /&gt;
DBSNMP                                 23 07-FEB-2006 22:35:21&lt;br /&gt;
TSMSYS                                 20 07-FEB-2006 22:27:15&lt;br /&gt;
DIP                                    18 07-FEB-2006 22:17:03&lt;br /&gt;
OUTLN                                  11 07-FEB-2006 22:10:24&lt;br /&gt;
SYSTEM                                  5 07-FEB-2006 22:10:13&lt;br /&gt;
SYS                                     0 07-FEB-2006 22:10:13&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; --&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Save returning value from a function to a variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE myStudent (&lt;br /&gt;
  2    student_id NUMBER(5) NOT NULL,&lt;br /&gt;
  3    department CHAR(3)   NOT NULL,&lt;br /&gt;
  4    course     NUMBER(3) NOT NULL,&lt;br /&gt;
  5    grade      CHAR(1)&lt;br /&gt;
  6    );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10000, &amp;quot;CS&amp;quot;, 102, &amp;quot;A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10002, &amp;quot;CS&amp;quot;, 102, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10003, &amp;quot;CS&amp;quot;, 102, &amp;quot;C&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10000, &amp;quot;HIS&amp;quot;, 101, &amp;quot;A&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10001, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO myStudent (student_id, department, course, grade)&lt;br /&gt;
  2                           VALUES (10002, &amp;quot;HIS&amp;quot;, 101, &amp;quot;B&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION AverageGrade (&lt;br /&gt;
  2    p_Department IN myStudent.department%TYPE,&lt;br /&gt;
  3    p_Course IN myStudent.course%TYPE) RETURN CHAR AS&lt;br /&gt;
  4    v_AverageGrade CHAR(1);&lt;br /&gt;
  5    v_NumericGrade NUMBER;&lt;br /&gt;
  6    v_NumberStudents NUMBER;&lt;br /&gt;
  7&lt;br /&gt;
  8    CURSOR c_Grades IS&lt;br /&gt;
  9      SELECT grade&lt;br /&gt;
 10        FROM myStudent&lt;br /&gt;
 11        WHERE department = p_Department&lt;br /&gt;
 12        AND course = p_Course;&lt;br /&gt;
 13  BEGIN&lt;br /&gt;
 14    SELECT COUNT(*)&lt;br /&gt;
 15      INTO v_NumberStudents&lt;br /&gt;
 16      FROM myStudent&lt;br /&gt;
 17      WHERE department = p_Department&lt;br /&gt;
 18        AND course = p_Course;&lt;br /&gt;
 19&lt;br /&gt;
 20    IF v_NumberStudents = 0 THEN&lt;br /&gt;
 21      RAISE_APPLICATION_ERROR(-20001, &amp;quot;No students registered for &amp;quot; ||&lt;br /&gt;
 22        p_Department || &amp;quot; &amp;quot; || p_Course);&lt;br /&gt;
 23    END IF;&lt;br /&gt;
 24&lt;br /&gt;
 25    SELECT AVG(DECODE(grade, &amp;quot;A&amp;quot;, 5,&lt;br /&gt;
 26                             &amp;quot;B&amp;quot;, 4,&lt;br /&gt;
 27                             &amp;quot;C&amp;quot;, 3,&lt;br /&gt;
 28                             &amp;quot;D&amp;quot;, 2,&lt;br /&gt;
 29                             &amp;quot;E&amp;quot;, 1))&lt;br /&gt;
 30      INTO v_NumericGrade&lt;br /&gt;
 31      FROM myStudent&lt;br /&gt;
 32      WHERE department = p_Department&lt;br /&gt;
 33      AND course = p_Course;&lt;br /&gt;
 34&lt;br /&gt;
 35    SELECT DECODE(ROUND(v_NumericGrade), 5, &amp;quot;A&amp;quot;,&lt;br /&gt;
 36                                         4, &amp;quot;B&amp;quot;,&lt;br /&gt;
 37                                         3, &amp;quot;C&amp;quot;,&lt;br /&gt;
 38                                         2, &amp;quot;D&amp;quot;,&lt;br /&gt;
 39                                         1, &amp;quot;E&amp;quot;)&lt;br /&gt;
 40      INTO v_AverageGrade&lt;br /&gt;
 41      FROM dual;&lt;br /&gt;
 42&lt;br /&gt;
 43    RETURN v_AverageGrade;&lt;br /&gt;
 44  END AverageGrade;&lt;br /&gt;
 45  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; VARIABLE v_AveGrade VARCHAR2(1)&lt;br /&gt;
SQL&amp;gt; EXEC :v_AveGrade := AverageGrade(&amp;quot;HIS&amp;quot;, 101)&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; PRINT v_AveGrade&lt;br /&gt;
V_AVEGRADE&lt;br /&gt;
--------------------------------&lt;br /&gt;
B&lt;br /&gt;
SQL&amp;gt; EXEC :v_AveGrade := AverageGrade(&amp;quot;NUT&amp;quot;, 307)&lt;br /&gt;
BEGIN :v_AveGrade := AverageGrade(&amp;quot;NUT&amp;quot;, 307); END;&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-20001: No students registered for NUT 307&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.AVERAGEGRADE&amp;quot;, line 21&lt;br /&gt;
ORA-06512: at line 1&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; PRINT v_AveGrade&lt;br /&gt;
V_AVEGRADE&lt;br /&gt;
--------------------------------&lt;br /&gt;
B&lt;br /&gt;
SQL&amp;gt; EXEC :v_AveGrade := AverageGrade(&amp;quot;MUS&amp;quot;, 410)&lt;br /&gt;
BEGIN :v_AveGrade := AverageGrade(&amp;quot;MUS&amp;quot;, 410); END;&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-20001: No students registered for MUS 410&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.AVERAGEGRADE&amp;quot;, line 21&lt;br /&gt;
ORA-06512: at line 1&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; PRINT v_AveGrade&lt;br /&gt;
V_AVEGRADE&lt;br /&gt;
--------------------------------&lt;br /&gt;
B&lt;br /&gt;
SQL&amp;gt; EXEC :v_AveGrade := AverageGrade(&amp;quot;CS&amp;quot;, 102)&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; PRINT v_AveGrade&lt;br /&gt;
V_AVEGRADE&lt;br /&gt;
--------------------------------&lt;br /&gt;
B&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table myStudent;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Undefine variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; UNDEFINE user_name&lt;br /&gt;
SQL&amp;gt; VARIABLE l_user VARCHAR2(30)&lt;br /&gt;
SQL&amp;gt; EXECUTE :l_user := &amp;quot;&amp;amp;user_name&amp;quot;;&lt;br /&gt;
Enter value for user_name:&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; SELECT &amp;quot;User &amp;quot; || :l_user || &amp;quot; has &amp;quot; || TO_CHAR(COUNT(*)) || &amp;quot; tables.&amp;quot;&lt;br /&gt;
  2  FROM all_tables&lt;br /&gt;
  3  WHERE owner = UPPER(:l_user);&lt;br /&gt;
User  has 0 tables.&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==User defined-variable in update set statement==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP(&lt;br /&gt;
  2      EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  3      ENAME VARCHAR2(10),&lt;br /&gt;
  4      JOB VARCHAR2(9),&lt;br /&gt;
  5      MGR NUMBER(4),&lt;br /&gt;
  6      startDate DATE,&lt;br /&gt;
  7      SAL NUMBER(7, 2),&lt;br /&gt;
  8      COMM NUMBER(7, 2),&lt;br /&gt;
  9      DEPTNO NUMBER(2)&lt;br /&gt;
 10  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;, 7902,TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7521, &amp;quot;WARD&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;2-APR-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7900, &amp;quot;E&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES(7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE DEPT(&lt;br /&gt;
  2      DEPTNO NUMBER(2),&lt;br /&gt;
  3      DNAME VARCHAR2(14),&lt;br /&gt;
  4      LOC VARCHAR2(13)&lt;br /&gt;
  5  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (10, &amp;quot;ACCOUNTING&amp;quot;, &amp;quot;NEW YORK&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (20, &amp;quot;RESEARCH&amp;quot;, &amp;quot;DALLAS&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (30, &amp;quot;SALES&amp;quot;, &amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (40, &amp;quot;OPERATIONS&amp;quot;, &amp;quot;BOSTON&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select empno, ename, sal from emp where deptno = 10;&lt;br /&gt;
     EMPNO ENAME             SAL&lt;br /&gt;
---------- ---------- ----------&lt;br /&gt;
      7782 CLARK            2450&lt;br /&gt;
      7839 KING             5000&lt;br /&gt;
      7934 MILLER           1300&lt;br /&gt;
SQL&amp;gt; variable empno number&lt;br /&gt;
SQL&amp;gt; variable ename varchar2(20)&lt;br /&gt;
SQL&amp;gt; variable sal number&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; exec :empno := 7934; :ename := &amp;quot;MILLER&amp;quot;; :sal := 1300;&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt; update emp&lt;br /&gt;
  2  set ename = :ename, sal = :sal&lt;br /&gt;
  3  where empno = :empno;&lt;br /&gt;
1 row updated.&lt;br /&gt;
SQL&amp;gt; commit;&lt;br /&gt;
Commit complete.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table dept;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>