常用SQL/oracle循环语句
2、使用T-SQL标准控制结构: 1 定义语句块 2 IF ... ELSE语句 3 IF EXISTS语句 语法: declare select @lname = ‘Smith’ if exists(select * from titles where au_lname = @lname) begin select @msg = ‘There are authors named’ @lname print @msg en
2、使用T-SQL标准控制结构:
1> 定义语句块
2> IF ... ELSE语句3> IF EXISTS语句
语法:
declare select @lname = ‘Smith’if exists(select * from titles where au_lname = @lname)
begin
select @msg = ‘There are authors named’ + @lname
print @msg
end
4> 循环语句:
示例:
while @avg_price
begin
select @avg_price = avg(price) * 1.05,
@max_price = max(price) * 1.05,
@time_thru_the_loop = @time_thru_the_loop + 1
end
if @time_thru_the_loop = 0
select @time_thru_the_loop = 1
update titles
set price = price * power(1.05, @time_thru_the_loop)
4> GOTO语句
语法:
GOTO label
...
label:
示例:
begin transaction
insert tiny(c1) values(1)
if @@error != 0 goto error_handler
commit transaction
return
error_handler:
rollback transaction
return
5> RETURN语句
语法:
RETURN
(1)用于无条件退出一个批处理、存储过程或触发器。
示例:
if not exists(select 1 from inventory
where item_num = @item_num)
begin
raiseerror 51345 ‘Not Found’
return
end
print ‘No error found’
return
(2)用于存储过程中返回状态值。
示例:
create procedure titles_for_a_pub
(@pub_name varchar(40) = null)
as
if @pub_name is null
return 15
if not exists(select 1 from publishers
where pub_name = @pub_name)
return –101
select t.tile from publishers p, titles t
where p.pub_id = t.pub_id
and pub_name = @pub_name
return 0
2、使用PL/SQL标准控制结构:
1> 定义语句块
语法:
BEGIN
Statements ;
END ;
2> IF ... THEN ... ELSE语句
语法:
IF boolean_expression THEN
{ statement | statement_block } ;
[ELSIF boolean_expression THEN /*注意此处的写法—— ELSIF */
{ statement | statement_block } ;]
...
[ELSE
{ statement | statement_block } ;]
END IF ;
示例:
v_NumberSeats rooms.number_seats%TYPE;
v_Comment VARCHAR2(35);
BEGIN
SELECT number_seatsINTO v_NumberSeats
FROM rooms
WHERE room_id = 99999;
IF v_NumberSeats
v_Comment := 'Fairly small';
ELSIF v_NumberSeats
v_Comment := 'A little bigger';
ELSE
v_Comment := 'Lots of room';
END IF;
END;
3> 循环语句:
(1)简单循环语句:
语法:
LOOP
{ statement | statement_block } ;
[EXIT [WHEN condition] ;]
END LOOP ;
其中,语句EXIT [WHEN condition];等价于
IF condition THEN
EXIT ;
END IF ;
示例1:
v_Counter BINARY_INTEGER := 1;
BEGIN
LOOP
-- Insert a row into temp_table with the current value of the
-- loop counter.
INSERT INTO temp_table
VALUES (v_Counter, 'Loop index');
v_Counter := v_Counter + 1;
-- Exit condition - when the loop counter > 50 we will
-- break out of the loop.
IF v_Counter > 50 THEN
EXIT;
END IF;
END LOOP;
END;
示例2:
v_Counter BINARY_INTEGER := 1;
BEGIN
LOOP
-- Insert a row into temp_table with the current value of the
-- loop counter.
INSERT INTO temp_table
VALUES (v_Counter, 'Loop index');
v_Counter := v_Counter + 1;
-- Exit condition - when the loop counter > 50 we will
-- break out of the loop.
EXIT WHEN v_Counter > 50;
END LOOP;
END;
(2)WHILE循环语句:
语法:
WHILE condition LOOP
{ statement | statement_block } ;
END LOOP ;
示例1:
v_Counter BINARY_INTEGER := 1;
BEGIN
-- Test the loop counter before each loop iteration to
-- insure that it is still less than 50.
WHILE v_Counter
INSERT INTO temp_table
VALUES (v_Counter, 'Loop index');
v_Counter := v_Counter + 1;
END LOOP;
END;
示例2:
v_Counter BINARY_INTEGER;
BEGIN
-- This condition will evaluate to NULL, since v_Counter
-- is initialized to NULL by default.
WHILE v_Counter
INSERT INTO temp_table
VALUES (v_Counter, 'Loop index');
v_Counter := v_Counter + 1;
END LOOP;
END;
(3)数字式FOR循环语句:
语法:
FOR loop_counter IN [REVERSE] low_bound..high_bound LOOP
{ statement | statement_block } ;
END LOOP ;
这里,loop_counter是隐式声明的索引变量。
示例1:
FOR循环的循环索引被隐式声明为BINARY_INTEGER。在循环前面没有
必要声明它,如果对它进行了声明,那么循环索引将屏蔽外层的声明,
如下所示
v_Counter NUMBER := 7;
BEGIN
-- Inserts the value 7 into temp_table.
INSERT INTO temp_table (num_col)
VALUES (v_Counter);
-- This loop redeclares v_Counter as a BINARY_INTEGER, which
-- hides the NUMBER declaration of v_Counter.
FOR v_Counter IN 20..30 LOOP
-- Inside the loop, v_Counter ranges from 20 to 30.
INSERT INTO temp_table (num_col)
VALUES (v_Counter);
END LOOP;
-- Inserts another 7 into temp_table.
INSERT INTO temp_table (num_col)
VALUES (v_Counter);
END;
示例2:
如果在FOR循环中有REVERSE关键字,那么循环索引将从最大值向最
小值进行循环。请注意语法是相同的——仍然首先书写的是最小值,
如下所示
BEGIN
FOR v_Counter IN REVERSE 10..50 LOOP
NULL;
END LOOP;
END;
示例3:
FOR循环中的最大值和最小值没有必要必须是数字型文字,它们可以
是能够被转换为数字值的任何表达式,如下所示
v_LowValue NUMBER := 10;
v_HighValue NUMBER := 40;
BEGIN
FOR v_Counter IN REVERSE v_LowValue..v_HighValue LOOP
INSER INTO temp_table
VALUES (v_Counter, ‘Dynamically sqecified loop range’);
END LOOP;
END;
4> GOTO语句
语法:
GOTO label;
...
>
...
示例:
v_Counter BINARY_INTEGER := 1;
BEGIN
LOOP
INSERT INTO temp_table
VALUES (v_Counter, 'Loop count');
v_Counter := v_Counter + 1;
IF v_Counter > 50 THEN
GOTO l_EndOfLoop;
END IF;
END LOOP;
>
INSERT INTO temp_table (char_col)
VALUES ('Done!');
END;
5> EXIT语句
语法:
EXIT;
参见上面的PL/SQL标准控制结构之循环语句说明部分。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

在CentOS系统上搭建Hadoop分布式文件系统(HDFS)需要多个步骤,本文提供一个简要的配置指南。一、前期准备安装JDK:在所有节点上安装JavaDevelopmentKit(JDK),版本需与Hadoop兼容。可从Oracle官网下载安装包。环境变量配置:编辑/etc/profile文件,设置Java和Hadoop的环境变量,使系统能够找到JDK和Hadoop的安装路径。二、安全配置:SSH免密登录生成SSH密钥:在每个节点上使用ssh-keygen命令

Oracle 日志文件写满时,可采用以下解决方案:1)清理旧日志文件;2)增加日志文件大小;3)增加日志文件组;4)设置自动日志管理;5)重新初始化数据库。在实施任何解决方案前,建议备份数据库以防数据丢失。

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

可以通过 EXP 实用程序导出 Oracle 视图:登录 Oracle 数据库。启动 EXP 实用程序,指定视图名称和导出目录。输入导出参数,包括目标模式、文件格式和表空间。开始导出。使用 impdp 实用程序验证导出。

在CentOS系统上配置WebLogic数据库连接,需要完成以下步骤:JDK安装与环境配置:确保服务器已安装与WebLogic版本兼容的JDK(例如,WebLogic14.1.1通常需要JDK8)。正确设置JAVA_HOME、CLASSPATH和PATH环境变量。WebLogic安装与解压:从Oracle官方网站下载适用于CentOS系统的WebLogic安装包,并将其解压到指定目录。WebLogic用户与目录创建:创建一个专用的WebLogic用户账户,并设置安全密码
