/*输出hello world*/
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World');
END; --set serveroutput on;
/**
if 语句
1.弹出提示信息
2.num接收一个数据地址
*/
-- accept num prompt '请输入一个数字';
DECLARE
PNUM NUMBER := #
BEGIN
IF PNUM = 0 THEN
DBMS_OUTPUT.PUT_LINE('您输入的数字是0');
ELSIF PNUM = 1 THEN
DBMS_OUTPUT.PUT_LINE('您输入的数字是1');
ELSIF PNUM = 2 THEN
DBMS_OUTPUT.PUT_LINE('您输入的数字是2');
ELSE
DBMS_OUTPUT.PUT_LINE('您输入的是其他数字');
END IF;
END;
--普通 case
DECLARE
PNUM NUMBER := #
BEGIN
CASE PNUM
WHEN 0 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是0');
WHEN 1 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是1');
WHEN 2 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是2');
WHEN 3 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是3');
ELSE
DBMS_OUTPUT.PUT_LINE('您输入的是其他数字');
END CASE;
END;
--条件case
DECLARE
P NUMBER := #
BEGIN
CASE
WHEN P = 0 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是0');
WHEN P = 1 THEN
DBMS_OUTPUT.PUT_LINE('你输入的数字是1');
ELSE
DBMS_OUTPUT.PUT_LINE('您输入的是其他数字');
END CASE;
END; /*打印1-10*/
SET SERVEROUTPUT ON;
/*使用set serveroutput on 命令设置环境变量serveroutput为打开状态,从而使得pl/sql程序能够在SQL*plus中输出结果 */
DECLARE
PNUM NUMBER := 1;
BEGIN
LOOP
--退出 满足条件退出
EXIT WHEN PNUM > 10;
DBMS_OUTPUT.PUT_LINE(PNUM);
PNUM := PNUM + 1;
END LOOP;
END; /**输出变量*/
DECLARE
I INT;
J INTEGER := 11;
C CHAR(4);
C1 VARCHAR2(10) NOT NULL := 'aaa'; --不能为null
C2 CONSTANT VARCHAR2(10) := 'afd'; --类型随之改变而改变,常量不能二次赋值
EMPNO EMP.EMPNO%TYPE; --SELECT * FROM emp; BEGIN
-- i := 10;
-- j := j + 1;
-- c := 'abc';
-- c1 := 'a';
--c1 := null; -- error code --c2 := 'afd';--error code
EMPNO := 1234; IF I = 10 THEN
DBMS_OUTPUT.PUT_LINE('i是10');
ELSE
DBMS_OUTPUT.PUT_LINE('i不是10');
END IF; DBMS_OUTPUT.PUT_LINE('i= : ' || I);
DBMS_OUTPUT.PUT_LINE('j= : ' || J);
DBMS_OUTPUT.PUT_LINE('c= : ' || C || LENGTH(C));
DBMS_OUTPUT.PUT_LINE('c1= : ' || C1);
DBMS_OUTPUT.PUT_LINE('c2= : ' || C2);
DBMS_OUTPUT.PUT_LINE('empno= : ' || EMPNO); END; ---**基本变量****-
DECLARE
--声明部分标识
V_JOB VARCHAR2(9);
V_COUNT BINARY_INTEGER DEFAULT 0;
V_TOTAL_SAL NUMBER(9, 2) := 0;
V_DATE DATE := SYSDATE - 1;
C_TAX_RATE CONSTANT NUMBER(3, 2) := 8.25; --常量不可二次赋值
V_VALID BOOLEAN NOT NULL := TRUE;
BEGIN
V_JOB := 'MANAGER';
--在程序中赋值
DBMS_OUTPUT.PUT_LINE(V_JOB);
--输出变量v_job的值
DBMS_OUTPUT.PUT_LINE(V_COUNT);
--输出变量v_count的值
DBMS_OUTPUT.PUT_LINE('日期是:' || V_DATE);
--输出变量v_date的值
DBMS_OUTPUT.PUT_LINE(C_TAX_RATE);
--输出变量c_tax_rate的值
END; --九九乘法表 for循环
DECLARE
I NUMBER;
J NUMBER;
BEGIN
FOR I IN 1 .. 9 LOOP
FOR J IN 1 .. I LOOP
--内循环
DBMS_OUTPUT.PUT(I || '*' || J || '=' || (I * J) || ' ');
END LOOP;
--外循环
DBMS_OUTPUT.PUT_LINE('');
END LOOP;
END; --九九乘法表 while循环
DECLARE
I NUMBER := 1;
J NUMBER := 1;
BEGIN
WHILE I < 10 LOOP
WHILE J <= I LOOP
--内循环
DBMS_OUTPUT.PUT(I || '*' || J || '=' || (I * J) || ' ');
J := J + 1;
END LOOP;
--外循环
I := I + 1;
J := 1;
DBMS_OUTPUT.PUT_LINE('');
END LOOP;
END;
--打印水仙花数 153
DECLARE
I NUMBER;
J NUMBER;
K NUMBER;
M NUMBER;
BEGIN
FOR I IN 100 .. 999 LOOP K := FLOOR(I / 100); --百位
J := FLOOR((I - K * 100) / 10); --十位
M := I MOD 10; --个位
IF I = J ** 3 + K ** 3 + M ** 3 THEN
DBMS_OUTPUT.PUT_LINE(I);
END IF;
END LOOP;
END; BEGIN
FOR V_I IN REVERSE 1 .. 10 LOOP
--v_i的值从10至1
DBMS_OUTPUT.PUT_LINE(V_I);
END LOOP;
END; /***循环嵌套加标号跳出****/
--使用一个基本嵌套循环,找出2-81中的素数,素数是指除了1和它本身以外,不能被任何整数整除的数。
DECLARE
--素数范围
M NUMBER(3);
--进行判读的因子
J NUMBER(3);
BEGIN
M := 2;
<<OUTER_LOOP>> --外循环标记
LOOP
J := 2;
--内循环标记
<<INNER_LOOP>>
LOOP
--当m能被j整除或m与j相等时,结束该循环
EXIT WHEN((MOD(M, J) = 0) OR (J = M));
--不满足上述条件,给j加一继续当前循环
J := J + 1;
END LOOP INNER_LOOP;
--如果m与j相等输出m值
IF (J = M) THEN
DBMS_OUTPUT.PUT_LINE(M || ' 是素数');
END IF;
M := M + 1;
--当m等于81结束当前循环
EXIT WHEN M = 81;
END LOOP OUTER_LOOP;
END;

  

--在主串中查找子串是否存在
declare
mStr varchar2(30) := 'abaacbacabca';
sStr varchar2(5) := 'abc';
j integer;
k integer;
mLen integer;
sLen integer;
loopsize integer;
begin
--v_result := false;
mLen := length(mStr);
sLen := length(sStr);
loopsize := mLen - sLen + 1;
<<out_loop>>
for i in 1..loopsize loop
j := i;
k := 1;
while substr(mStr, j, 1) = substr(sStr, k, 1) loop
if k = sLen then
--v_result := true;
dbms_output.put_line('success');
exit out_loop;
end if;
j := j+1;
k := k+1;
end loop;
end loop; --return(v_result);
end;

  

PL/SQl编程 基本语法的更多相关文章

  1. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  2. pl/sql编程

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  4. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

  5. [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)

    原文:[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆) [推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/S ...

  6. ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

    原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE P ...

  7. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...

  8. [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)

    原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL ...

  9. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

    原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...

随机推荐

  1. hbase参数配置优化

    因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 配置优化 zo ...

  2. 【转】简单理解Vue中的nextTick

    前言: Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick ...

  3. Java 8 新特性:6-Optional类

    (原) 先看看上面的说明: /** * A container object which may or may not contain a non-null value. * If a value i ...

  4. Topshelf:一款非常好用的 Windows 服务开发框架

    背景 多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows s ...

  5. Error:Execution failed for task ':app:processDebugManifest'. Manifest merger failed with multiple errors, see logs

    这个异常在网上一搜会出现很多答案,也可能都对. 我都尝试过但是不符合我这边的要求,问题得不到解决.网上的说法是对的,jar包冲突.不过究竟是哪里冲突没办法判断. 最后尝试了一下在module的中没用的 ...

  6. PHP中生成UUID

    一.什么是UUID 简单的说UUID就是一串全球唯一的(16进制)数字串. UUID的全拼为“Universally Unique Identifier”,可以译为“通用唯一识别码”.UUID由开源软 ...

  7. Jquery mobile动态生成ListView调用刷新方法报错

    错误:cannot call methods on listview prior to initialization... 示例: <div data-role="page" ...

  8. JS 数组去重的几种方式

    JS 常见的几种数组去重方法 一.最简单方法(indexOf 方法) 实现思路:新建一个数组,遍历要去重的数组,当值不在新数组的时候(indexOf 为 -1)就加入该新数组中: function u ...

  9. 控制结构(6): 最近最少使用(LRU)

    // 上一篇:必经之地(using) // 下一篇:程序计数器(PC) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. There are only two hard thin ...

  10. debugfs

    http://www.cnblogs.com/wwang/archive/2011/01/17/1937609.html