期货直播室网站建设,网站什么引导页,ppt免费模板下载网站有哪些,wordpress配置邮箱第二章#xff1a;PL/SQL基础 2.1 PL/SQL程序结构 2.1.1 PL/SQL块的类型 所有的PL/SQL程序都是以块作为基本单位#xff0c;以及都是由块组成的。 这些块可以是按顺序出现的#xff0c;也可以是嵌套的 块可以根据其带名称和不带名称以及在数据库中的存储方式分为以下类型PL/SQL基础 2.1 PL/SQL程序结构 2.1.1 PL/SQL块的类型 所有的PL/SQL程序都是以块作为基本单位以及都是由块组成的。 这些块可以是按顺序出现的也可以是嵌套的 块可以根据其带名称和不带名称以及在数据库中的存储方式分为以下类型 匿名块只能执行一次不能存储在数据库中 带名块一种带标签的匿名块 子程序可以存储在数据库中的过程函数和包可以多次执行可以在外部的程序中显示调用 触发器存储在数据库中的带名块当相应的触发事件发生时触发器就被自动执行触发器事件一般是针对特定的数据库表进行的DML语句如INSERT,UPDATE,DELTE I_Namedblock DECLARE v_num1 NUMBER : 1; v_num2 NUMBER : 2; v_str1 VARCHAR2 (30) : 你好; v_str2 VARCHAR2 (30) : 这是你第一次接触PL/SQL; v_outputstr VARCHAR2 (30); BEGIN INSERT INTO test_table(ncolumn, vcolumn)VALUES (v_num1, v_str1); INSERT INTO test_table(ncolumn, vcolumn)VALUES (v_num2, v_str2); SELECT vcolumn INTO v_outputstr FROM test_table WHERE ncolumn v_num1; DBMS_OUTPUT.put_line (v_outputstr); SELECT vcolumn INTO v_outputstr FROM test_table WHERE ncolumn v_num2; DBMS_OUTPUT.put_line (v_outputstr); END I_Namedblock; 带名块就是在匿名块前面加上一个标签 把DECLARE关键字 变成 CREATE OR REPLACE PROCEDURE 就变成了存储过程 CREATE OR REPLACE PROCEDURE 过程名 IS 2.1.2 PL/SQL块的结构 所有块都包含3个部分声明部分执行部分异常处理部分 DECLARE v_ncolumn NUMBER :6; v_vcolumn VARCHAR2(30); BEGIN SELECT v_column INTO v_vcolumn FROM test_table WHERE ncolumnv_ncolumn; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(没有找到匹配的数据); END; 在过程和函数中声明变量是不需要DECLARE的但在声明TRIGGER中的变量是必须要有DECLARE 如果块中不需要声明变量类型和游标时声明部分可以省略 执行部分是不可缺少的一般以BEGIN开始 END结束。END关键字必须是分号结束的 2.1.3 词法单位 e代表乘以10的多少次幂 2.2 变量声明 Variable_name [CONSTANT] type [NOT NULL][:value | DEAFULT value] Variable_name是变量名 CONSTANT 声明的是一个常量 Type 是类型 NOT NULL 可选表示不能为空 :value | DEAFULT value表示赋值 缺省的变量会被初始化为NULL 不能把NULL付给一个定义为NOT NULL的变量acct_id INTEGER(5) NOT NULL;这样是不允许的 在NATURAL和POSITIVEN他们被预先定义为NOT NULL 每行只能声明一个变量这和其他语言不同 BEGIN END;是可以嵌套的 2.3 变量类型 4中标量类型数字类型布尔型字符型日期型 复合型 引用型 LOB型 数字型的三种基本类型BINARY_INTEGER,NUMBER,PLS_INTEGER 字符型:CHAR,VARCHAR2,LONG和LONG RAW,RAW,ROWID和UROWID LOB类型:BFILE,BLOB,CLOB,NCLOB 布尔类型BOOLEAN(TRUE,FALSE,NULL) 日期时间类型DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE,INTERVAL YEAR TO MONTH,INTERVAL DAY TO SENCOND 复合类型记录表数组 引用类型REF CURSOR 和ref object_type 用户自定义类型 2.4 数据类型转换 显式转换可以使用内置函数 隐式转换隐式转换不是好的习惯可能会影响效率结果可能不可预料 2.5 表达式 表达式是由操作符和运算符的结合 CASE 表达式 CASE SELECTOR WHEN express THEN result1 WHEN express THEN result3 WHEN express THEN result2 END;转载于:https://www.cnblogs.com/myfreefield/archive/2011/04/03/2004392.html