PL/SQl编程 基本语法
/*输出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编程 基本语法的更多相关文章
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- pl/sql编程
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- ORACLE PL/SQL编程之八:把触发器说透
原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...
- [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
原文:[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆) [推荐]ORACLE PL/SQL编程之五: 异常错误处理(知已知彼.百战不殆) 继上三篇:ORACLE PL/S ...
- ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!) 继上篇:ORACLE P ...
- [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...
- [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
原文:[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之四: 把游标说透(不怕做不到,只怕想不到) 继上两篇:ORACLE PL ...
- [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...
随机推荐
- 在虚拟机中,设置centos7静态ip
https://blog.csdn.net/qq_34182808/article/details/80065908
- bzoj3122 [SDOI2013]随机数生成器
bzoj3122 [SDOI2013]随机数生成器 给定一个递推式, \(X_i=(aX_{i-1}+b)\mod P\) 求满足 \(X_k=t\) 的最小整数解,无解输出 \(-1\) \(0\l ...
- PHP中生成UUID
一.什么是UUID 简单的说UUID就是一串全球唯一的(16进制)数字串. UUID的全拼为“Universally Unique Identifier”,可以译为“通用唯一识别码”.UUID由开源软 ...
- Web Storage和cookie
Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生; Web Storage的概念和cookie相似,区别是它是为了更大容 ...
- 【转】SpringBoot启动服务的三种方式
1.IDEA启动 2.命令行启动 首先将命令行位置跳转到当前项目的根目录下,再输入“mvn spring-boot:run”命令,初次操作maven需要下载插件等待几分钟 3.命令行编译为jar启动 ...
- 小程序——阿里服务器配置https及什么是IIS
1.申请域名:阿里云 2.免费开启SSL证书:管理=>免费开启SSL证书>单域名>dev.xxx.top 3.配置服务器:下载=>IIS7证书 *注册一个域名,可以免费开启一个 ...
- iview table行render渲染不同的组件
table不同的行,相同的列渲染不同的组件,如图1:第一行渲染selece,第二行渲染input render:(h,params)=>{ if(params.index === 0){ //以 ...
- java高级-动态注入替换类Instrumentation
介绍 利用java.lang.instrument(容器类) 做动态 Instrumentation(执行容器) 是 Java SE 5 的新特性. 使用 Instrumentation,开发者可以构 ...
- Shell命令-文件及内容处理之head、tail
文件及内容处理 - head.tail 1. head:显示文件内容头部 head命令的功能说明 head 命令用于显示文件头部内容,默认执行 head 命令会输出文件开头的 10 行. head命令 ...
- 题解 P1601 【A+B Problem(高精)】
P1601 A+B Problem(高精) 题目描述 高精度加法,x相当于a+b problem,b不用考虑负数. 输入输出格式 输入格式: 分两行输入a,b<=10^500 输出格式: 输出只 ...