oracle学习笔记(一)


一,变量
PL/SQL块的组成分为三个部分
  --定义(declare)
  --可执行部分(begin.......end)
  --异常部分(exception)
具体的结构如下:
Java代码
Declare  
变量,常量,游标,异常  
Begin  
Sql语句,pl/sql语句  
Exception  
End; 

Declare
变量,常量,游标,异常
Begin
Sql语句,pl/sql语句
Exception
End;

例如:
Java代码
    DECLARE  
      v_variable  VARCHAR2(5);  
BEGIN  
     SELECT column_name  
     INTO   v_variable  
     FROM   table_name;  
EXCEPTION  
     WHEN exception_name THEN  
     ...  
END;  


    DECLARE
      v_variable  VARCHAR2(5);
BEGIN
     SELECT column_name
     INTO v_variable
     FROM table_name;
EXCEPTION
     WHEN exception_name THEN
     ...
END;
/

其中v_variable 是一个变量,在执行部分,将查询的结果放入该变量中保存。如果发生了异常测执行异常部分。

(一)变量的定义
      1.变量的定义格式:
      Declare(可选)
        变量名 变量类型;
     如:
      Declare
         V_name varchar2(25)  := not null“admin”;
     意义:定义一个变量v_name,规定值不能为空,初始值是“admin”
     几种常见的数据类型:
        Varchar2,number,date,char,long,boolean等
     %type属性:
         用于类型匹配:两种情况使用。
(1) 以前定义变量A的类型,要定义变量B的类型与A相同时,则可以:
            B A%type
(2)   定义变量类型和表中列的类型相同时:
          A 表名.列名%type
     2.记录类型:
         (1) 格式: type 记录变量名 is record(
变量名  变量类型,
……
变量名 变量类型)
(2) 记录类型与表的结构一致时:
记录变量名 表名%rowtype
          例如:定义一个person类型的记录变量(姓名,性别,年龄),表person。则:
(1)
Java代码
Declare  
Type t_person is record(  
Name varchar2(20),  
Sex varchar2(2),  
Age number(4),  
) 

Declare
Type t_person is record(
Name varchar2(20),
Sex varchar2(2),
Age number(4),


(2) t_person person%rowtype;
        3 绑定变量 指的是全局变量
          声明一个绑定变量:variable name varchar2(20);
          引用绑定变量:    :name := “admin”;
        4 变量的命名规范:
标识符 举例:
Java代码
Variable    v_name  
Constant    C_name  
Cursor  name_curse  
Exception   e_name  
Record  name_record  
SQL*Plus substitution parameter p_name  
SQL*Plus global variable    g_name 

Variable v_name
Constant C_name
Cursor name_curse
Exception e_name
Record name_record
SQL*Plus substitution parameter p_name
SQL*Plus global variable g_name
 

二 可执行部分
   例如:
(1)
Java代码
set serveroutput on;  
declare  
  v_name varchar(2) not null :=’’;  
begin  
  select username into v_name from userinfo where usernumber=95001;  
  dbms_output_print_line(v_name);  
end;  
/; 

set serveroutput on;
declare
  v_name varchar(2) not null :=’’;
begin
  select username into v_name from userinfo where usernumber=95001;
  dbms_output_print_line(v_name);
end;
/;

注释:将学号是95001的学生的姓名通过PL/SQL打印出来。
      V_name是一个变量,用来存放95001的姓名。
      dbms_output_print_line(v_name);是库中提供的一个打印函数,在使用之前必须把包包括进来。
(2) 对于记录类型的变量信息的打印
(3) /*如下是一个关于记录类型数据的操作的例子*/
Java代码
Set serveroutput on;  
Declare  
  Record_person person%rowtype;  
Begin  
  Select *  into record_person from person where usernumber=95001;  
--以下是打印语句  
  Dbms_output_print_line(record_person.name);  
  Dbms_output_print_line(record_person.sex);  
  Dbms_output_print_line(record_person.age);  
End;  


Set serveroutput on;
Declare
  Record_person person%rowtype;
Begin
  Select *  into record_person from person where usernumber=95001;
--以下是打印语句
  Dbms_output_print_line(record_person.name);
  Dbms_output_print_line(record_person.sex);
  Dbms_output_print_line(record_person.age);
End;
/

         注释:(1)/*…..*/ 是多行注释语句。
               (2)—是单行注释语句
    (3)Record_person person%rowtype;是记录类型变量的定义
               (4)record_person.age 是记录变量数据的引用

你可能感兴趣的:(数据结构,oracle,sql,C++,c)