----------------------------------------------------------------------
DECLARE
conVerson constant VARCHAR2(20) := '1.0.01';
BEGIN
DBMS_OUTPUT.put_line(conVerson);
END;
----------------------------------------------------------------------
DECLARE
Database VARCHAR2(50) := 'Oracle 10g';
BEGIN
dbms_output.put_line(Database);
END;
----------------------------------------------------------------------
DECLARE
Database VARCHAR2(50);
BEGIN
Database := 'Oracle 11g';
dbms_output.put_line(Database);
END;
----------------------------------------------------------------------
DECLARE
Num INTEGER := 11;
BEGIN
IF Num < 0 THEN
dbms_output.put_line('负数');
ELSIF Num > 0 THEN
dbms_output.put_line('正数');
ELSE
dbms_output.put_line('0');
END IF;
END;
----------------------------------------------------------------------
DECLARE
varDAY INTEGER := 5;
Result VARCHAR2(20);
BEGIN
Result := CASE varDAY
WHEN 1 THEN
'日曜日'
WHEN 2 THEN
'火曜日'
WHEN 3 THEN
'水曜日'
WHEN 4 THEN
'木曜日'
WHEN 5 THEN
'金曜日'
WHEN 6 THEN
'土曜日'
WHEN 7 THEN
'月曜日'
ELSE
'数字越界'
END;
dbms_output.put_line(Result);
END;
----------------------------------------------------------------------
DECLARE
V_num INTEGER := 1;
V_sum INTEGER := 0;
BEGIN
LOOP
V_sum := V_sum + V_num;
dbms_output.put_line(V_num);
IF V_num = 10 THEN
EXIT;
END IF;
dbms_output.put_line('+');
V_num := V_num + 1;
END LOOP;
dbms_output.put_line('=');
dbms_output.put_line(V_sum);
END;
----------------------------------------------------------------------
DECLARE
V_num INTEGER := 1;
V_sum INTEGER := 0;
BEGIN
LOOP
V_sum := V_sum + V_num;
dbms_output.put_line(v_num);
EXIT WHEN V_num = 9;
dbms_output.put_line('+');
V_num := V_num + 1;
END LOOP;
dbms_output.put_line('=');
dbms_output.put_line(V_sum);
END;
----------------------------------------------------------------------
DECLARE
v_Num INTEGER := 1;
v_Sum INTEGER := 0;
BEGIN
WHILE v_Num <= 11 LOOP
v_Sum := v_Sum + v_Num;
dbms_output.put_line(v_Num);
IF v_Num < 11 THEN
dbms_output.put_line(' + ');
END IF;
v_Num := v_Num + 1;
END LOOP;
dbms_output.put_line('=');
dbms_output.put_line(v_Sum);
END;
----------------------------------------------------------------------
DECLARE
v_Num INTEGER;
v_Sum INTEGER := 0;
BEGIN
FOR v_Num IN 1 .. 3 LOOP
v_Sum := v_Sum + v_Num;
dbms_output.put_line(v_Num);
IF v_Num < 3 THEN
dbms_output.put_line('+');
END IF;
END LOOP;
dbms_output.put_line('=');
dbms_output.put_line(v_Sum);
END;
----------------------------------------------------------------------
DECLARE
x NUMBER;
BEGIN
x := 'a123';
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.put_line('----- TYPE ERROR -----');
END;
----------------------------------------------------------------------
DECLARE
var_Username VARCHAR(40);
BEGIN
SELECT NAME INTO var_Username FROM EMPLOYEE WHERE GIVENNAME = 'Joe';
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('NO DATA');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.put_line('TOO MANY DATA');
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('UNKNOWN ERROR');
END;
----------------------------------------------------------------------
DECLARE
BEGIN
DBMS_OUTPUT.put_line(ABS(-4));
DBMS_OUTPUT.put_line(CEIL(116.24));
DBMS_OUTPUT.put_line(CEIL(-112.75));
DBMS_OUTPUT.put_line(CEIL(0));
DBMS_OUTPUT.put_line(FLOOR(116.24));
DBMS_OUTPUT.put_line(FLOOR(-112.75));
DBMS_OUTPUT.put_line(FLOOR(0));
DBMS_OUTPUT.put_line(POWER(15, 4));
DBMS_OUTPUT.put_line(ROUND(123.456, 2));
DBMS_OUTPUT.put_line(ROUND(123.456, 1));
DBMS_OUTPUT.put_line(ROUND(123.456, 0));
DBMS_OUTPUT.put_line(ROUND(123.456, -1));
DBMS_OUTPUT.put_line(ROUND(123.456, -2));
DBMS_OUTPUT.put_line(ROUND(123.456, -3));
END;
----------------------------------------------------------------------
DECLARE
date1 VARCHAR2(20) := '2008-06-05';
date2 VARCHAR2(20) := '2008-10-05';
BEGIN
DBMS_OUTPUT.put_line(ASCII('ABC'));
DBMS_OUTPUT.put_line(SYSDATE);
DBMS_OUTPUT.put_line(TO_CHAR(SYSDATE));
DBMS_OUTPUT.put_line(LAST_DAY(SYSDATE));
DBMS_OUTPUT.put_line(MONTHS_BETWEEN(TO_DATE(date2, 'yyyy-mm-dd'),
TO_DATE(date1, 'yyyy-mm-dd')));
END;
----------------------------------------------------------------------
SELECT * FROM EMPLOYEE;
SELECT COUNT(ID) FROM EMPLOYEE;
SELECT MAX(ID) FROM EMPLOYEE;
SELECT MIN(ID) FROM EMPLOYEE;
----------------------------------------------------------------------
DECLARE
Ver NUMBER;
BEGIN
SELECT LENGTH(USERNAME) into Ver FROM EMP WHERE USERID = 1;
dbms_output.put_line(Ver);
END;
----------------------------------------------------------------------
DECLARE
DEPNAME AA_DEPARTMENTS.DEPARTMENT_NAME%TYPE;
BEGIN
SELECT DEPARTMENT_NAME INTO DEPNAME FROM AA_DEPARTMENTS WHERE DEPARTMENT_ID=10;
DBMS_OUTPUT.put_line(DEPNAME);
END;
----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION f_compute_costproject_code(cbs_code IN varchar2)
RETURN varchar2 AS
res_costproject_code varchar(40);
BEGIN
res_costproject_code := case
-------------------
when cbs_code in
('0101', '0201', '0301', '0501') then
'01'
-------------------
when cbs_code in
('0102', '0202', '0302', '0502') then
'02'
-------------------
when cbs_code in
('0103', '0203', '0303', '0503') then
'03'
-------------------
when cbs_code in
('0106', '0206', '0306', '0506') then
'04'
-------------------
when cbs_code in
('0104', '0204', '0304', '0504') then
'05'
-------------------
when cbs_code in
('0105', '0205', '0305', '0505') then
'06'
-------------------
when cbs_code in
('0108', '0208', '0308', '0508') then
'07'
-------------------
when cbs_code in
('0107', '0207', '0307', '0507') then
'08'
-------------------
when cbs_code in ('0410', '9010') then
'other'
else
'none'
end;
RETURN res_costproject_code;
END;
分享到:
相关推荐
PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和...通过本教程的学习,您将初步掌握PL/SQL语言,能够利用PL/SQL语言完成建表、查询、添加、删除数据以及事务处理语句的基本用法。
探讨了数据类型、条件控制语句和顺序控制语句、循环、异常处理、安全特性、全球化和本地化问题, 以及PL/SQL架构。 ? 通过使用过程、函数、触发器和包,建立模块化的PL/SQL应用。 内容推荐 《Oracle PL/SQL程序...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...
PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...
探讨了数据类型、条件控制语句和顺序控制语句、循环、异常处理、安全特性、全球化和本地化问题, 以及PL/SQL架构。 ? 通过使用过程、函数、触发器和包,建立模块化的PL/SQL应用。 内容推荐 《Oracle PL/SQL程序...
PL\SQL 基本语句。对于刚刚接触oracle的技术员来说非常有用
自己总结的,适合于初学者,下载后打印即可使用。
存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(INPUT)或输出(OUTPUT)、或既作输入又作输出(INOUT),与函数不 同,存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...
引擎执行PL/SQL中的过程性语句,然后将SQL语句发送给数据库服务器来执行;再将结果返回给执行端 6、PL/SQL优势: 集成在数据库,运行是大量减少网络传输量和交互时间,提高系统运行效率 统一的和集中的业务逻辑处理...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南 Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL ...
函数:Create or replace function funcname(参数列表) return 返回值 as PL/SQL语句块 为便于理解,举例如下: 问题:假设有一张表t1,有f1和f2两个字段,f1为number类型,f2为varchar2类型,要往t1里写两条...
PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL...
更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU使用情况、块I/O、记录I/O、表格扫描、分类等。 HTML指南——Oracle目前支持HTML格式的在线指南。您可以将其集成到PL/SQL...
结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单的调用相应语句来直接取得...