当前位置:首页 » 编程语言 » plsql中的for语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

plsql中的for语句

发布时间: 2022-06-17 12:45:48

㈠ 请问plsql中下面这个循环什么意思啊,谢谢

reverse在这里是倒序循环的意思,也就是说从6开始,步长为-1,循环到1:

sys@ORCL>begin
2 for i in reverse 1..6
3 loop
4 dbms_output.put_line(i);
5 end loop;
6 end;
7 /
6
5
4
3
2
1

另外reverse也是一个函数:

sys@ORCL>select reverse('abcdefg') from al;

REVERSE
-------
gfedcba

㈡ 我想用PLSQL写一个FOR循环

FOR I IN 1..10 LOOP
IF I<>6 AND I<>8 THEN
INSERT INTO MESSAGE(results) VALUES(I);
END IF;
END LOOP;
COMMIT;

㈢ oracle存储过程中循环for in是如何使用的

1、首先编写存储过程的整体结构,如下图所示定义变量。

㈣ plsql forupdate怎么手动在尾行加多条数据

1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');
如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','测试');
end loop;
end ;。
2、采用insert into selct from 语句来一次性插入一个集合,这种主要依据于要插入的数据源已经存储于数据库对象中,或者利用al虚表来构造数据,经过加工后写入一个集合。
insert into test (xh,mx) select '123','测试' from al;
3、采用plsql等工具、或者oracle的imp、impdp命令来导入,这种主要用数据库与数据库之间的大批量数据导入,导入的数据格式为plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径。
impdp 用户名/密码 mpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷贝。这种主要用于要写入的数据已是excel文件或者行列分明的其它格式文件,每一列的值和表结构相对应,可直接打开表的行级锁,把数据拷贝进入。
打开行级锁方法:
select t.*,rowid from 表名 t where 1=2;
select * from 表名 where 1=2 for update;
直接把excel数据拷贝到表里

㈤ plsql中管联操作符的作用

1、打开PLSQL,填写用户名和密码(初始有两个用户sys和system,密码是自己安装oracle数据库时定的),Database选择ORCL(默认数据库,oracle中创建的用户就像是mysql中建的数据库,两者有异曲同工之妙)


以上就是在PLSQL中新建用户,创建表的步骤,谢谢!

㈥ Oracle plsql编程的三道题目

4、使用case语句更新工资,10部门提高100,20部门提高200,30部门提高300,40部门提高400。

setserveroutputon
declarev_dptemp.dpt%type;
begin
selectdptintov_dptfromempwherename='zhangsan'
case
whenv_dpt='10'then
updateempsetsal=sal+100wherename='zhangsan';
whenv_dpt='20'then
updateempsetsal=sal+200wherename='zhangsan';
whenv_dpt='30'then
updateempsetsal=sal+300wherename='zhangsan';
whenv_dpt='40'then
updateempsetsal=sal+400wherename='zhangsan';
else
dbms_output.put_line('无法更新!');
endcase;
end;

5、分别使用3种循环计算10的阶乘

简单(loop)循环

declareinumber(2):=1;snumber(10):=1;
begin
loops:=s*i;
i:=i+1;
dbms_output.put_line(s);
exitwheni>10;
endloop;
end;

for循环

declareinumber(2):=1;snumber(10):=1;
begin
loop
s:=s*i;
i:=i+1;
dbms_output.put_line(s);
exitwheni>10;
endloop;
end;

while循环

declareinumber(2):=1;snumber(10):=1;
begin
whilei<=10loop
s:=s*i;
i:=i+1;
dbms_output.put_line(s);
endloop;
end;

6、使用for循环输出一个实心三角形,底边长由用户输入。

核心代码:

begin
foriin1..5loop
dbms_output.put_line(rpad(i,8-i,'')||rpad('*',2*i-1,'*'));
endloop;
end;

㈦ plsql中FOR语句的问题

变量c没有定义,是想使用游标吗?
我不太清楚for循环中能否用and
根据你的需求,我写了如下代码:
declare
i number;
c TEXT_IMPORT.姓氏%type;
cursor c_text is select 姓氏 from TEXT_IMPORT;

begin
i :=1
open c_text;
for i in 1 .. 504 loop
fetch c_text into c;
update test_hanzibiao t set t.xingshi = c, t.hzbid =i;

i:=i+1;
end loop;
close c_text;
end;

㈧ PLSQL几种循环语句用法

lsql中的三种循环

[sql]view plain

  • <codeclass="language-java">--while循环(条件成立时执行)

  • declare

  • pnumnumber:=1;

  • whilepnum<=10loop

  • dbms_output.put_line(pnum);

  • pnum:=pnum+1;

  • endloop;

  • end;

  • </code>

  • --loop循环(条件成立时退出) declare pnum number:=1; begin loop --退出条件:循环变量大于10 exit when pnum>10; --打印该变量的值 DBMS_OUTPUT.PUT_LINE(pnum); --循环变量+1 pnum:=pnum+1; end loop; end;

  • --for循环(1..10表示连续区间)declare punm number:=1;beginfor pnum in 1..10 loopdbms_output.put_line(pnum);end loop;end;

㈨ plsql的for update

使用了plsql的自动替换功能。
请按照如下步骤修改设置:
1. 菜单中找到 Tools--preferences
2. 在左侧列表中选择“Editor”
3. 在右侧配置中找到“AutoReplace”这一项
4.点击 Edit 按钮,删除其中的所有文本
5. 点击OK,结束设置
6. 重启Plsql,这样就不会出现上述的自动替换了

㈩ 使用PLSQL语句和游标循环打印出emp表中所有人工资和姓名。急谢谢了

查询输出所有员工编号,姓名,工资(PLSQL表类型)

DECLARE
TYPE emp_table_type IS TABLE OF employees%ROWTYPE INDEX BY BINARY_INTEGER;

e emp_table_type;

CURSOR emp_cursor IS
SELECT * FROM employees;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor BULK COLLECT
INTO e;
FOR i IN 1 .. e.count LOOP
dbms_output.put_line('编号' || e(i).employee_id);
dbms_output.put_line('姓名' || e(i).last_name);
dbms_output.put_line('工资' || e(i).salary);
dbms_output.put_line('----------------------------');
END LOOP;
CLOSE emp_cursor;
END;

(5)查询输出所有员工编号,姓名,工资(通过limit控制提取的数据量)

DECLARE
TYPE emp_table_type IS TABLE OF employees%ROWTYPE
INDEX BY BINARY_INTEGER;
e emp_table_type;
CURSOR emp_cursor IS
SELECT * FROM employees;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor BULK COLLECT INTO e LIMIT 6 ;

FOR i IN 1..e.count LOOP
dbms_output.put_line('编号' || e(i).employee_id);
dbms_output.put_line('姓名' || e(i).last_name);
dbms_output.put_line('工资' || e(i).salary);
dbms_output.put_line('----------------------------');
END LOOP;
CLOSE emp_cursor;
END;