`
leeyb
  • 浏览: 28878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

PLSQL加强版

SQL 
阅读更多
--匿名块
declare 
 n varchar (20 char);
begin 
 select user_name into n from P_user where user_Id=1;
 dbms_output.put_line(n);
end;
----------------------------------------------------------------------------

--子程序
create or replace procedure p12
is
 n varchar (20 char);
begin 
 select user_name into n from P_user where user_Id=1;
 dbms_output.put_line(n);
end;
-----------------------------------------------------------------------------
--标量:标准的变量
declare 
 n varchar (20 char);
 a number;
begin 
 select user_name into n from P_user where user_Id=1;
 dbms_output.put_line(n);
 dbms_output.put_line(a);
end;
----------------------------------------------------------------------------
--单行多列 选表所有字段
declare
users p_user%rowtype;
begin
select*into users from p_user where user_id=1;
dbms_output.put_line(users.user_id);
dbms_output.put_line(users.user_name);
dbms_output.put_line(users.age);
end;
-----------------------------------------------------------------------------
--自定义PL/SQL纪录
declare
type user_type is record(id number,name p_user.user_name%type,age number);
users user_type;
begin
select*into users from p_user where user_id=2;
dbms_output.put_line(users.id);
dbms_output.put_line(users.name);
dbms_output.put_line(users.age);
end;
-------------------------------------------------------------------------------------
--在insert语句中使用PL/SQL纪录
declare
users p_user%rowtype;
begin
users.user_id:=9;
users.user_name:='demo';
users.age:=9;
insert into p_user values users;
commit;
end;
-----------------------------------------------------------------------
--在update数据中使用PL/SQL纪录
declare
users p_user%rowtype;
begin
users.user_id:=9;
users.user_name:='good boy';
users.age:=20;
update p_user set row =users where user_id=9;
commit;
end;
--------------------------------------------------------------------
--在PL/SQL中使用varray
declare
type names_type is varray(5) of varchar2(20);
names names_type;
begin
names:=names_type(null,null,null,'james');
select user_name into names(1)from p_user where user_id=1;
names(3):='just';
for i in 1..names.count loop
dbms_output.put_line(names(i));
end loop;
end;
--------------------------------------------------------------------
--在表列中使用varray
create or replace type names_type2 is varray(3)of varchar2(10);

create table p_room2(id number,names names_type2);
---------------------------------------------------------------------
--PL/SQL记录表
declare
type user_table_type is table of p_user%rowtype
index by pls_integer;
user_tables user_table_type;
begin
select*into user_tables(1)from p_user where user_id=1;
select*into user_tables(2)from p_user where user_id=2;
user_tables(3).user_id:=2;
user_tables(3).user_name:='power';
user_tables(3).age:=3;
for i in 1..user_tables.count loop
dbms_output.put_line(user_tables(i).user_id);
dbms_output.put_line(user_tables(i).user_name);
dbms_output.put_line(user_tables(i).age);
end loop;
end;
------------------------------------------------------------------------
--exists方法
declare
type id_name_type is table of varchar2(10);
names id_name_type:=id_name_type('123','bcd','fff');
num number;
begin
num:=1;--下标
if names.exists(num)then
dbms_output.put_line('names:'||names(num));
else
dbms_output.put_line('元素未初始化');
end if;
end;

------------------------------------------------------------------------
--limit方法
declare
type names_array_type is varray(20)of number(6);
names_array names_array_type;
begin
names_array:=names_array_type(2,3,4,5,6);
dbms_output.put_line(names_array.limit);
end;

------------------------------------------------------------------------
--count
declare
type names_array_type is table of varchar2(20);
names_array names_array_type;
begin
names_array:=names_array_type('ff',null,'uu','hh');
dbms_output.put_line(names_array.count);
end;

---------------------------------------------------------------------
--first last
declare
type names_type is table of varchar2(20) index by pls_integer;
names names_type;
begin
names(-7):='james';
names(-9):='works';
names(100):='sdfds';
dbms_output.put_line('第一个元素:'||names(names.first));
dbms_output.put_line('最后一个元素下标:'||names.last);

end;
-------------------------------------------------------------------------
--prior& next
declare
type names_type is table of varchar2(20) index by pls_integer;
names names_type;
begin
names(-7):='james';
names(-9):='works';
names(100):='sdfds';
names(50):='tables';
dbms_output.put_line('第一个元素的前一个下标:'||names.first||'值:'||names(names.first));
dbms_output.put_line('当前元素的后一个下标:'||names.next(names.first)||'值:'||names(names.next(names.first)));
dbms_output.put_line('下标为50的元素的前一个元素的下标:'||names.prior(50));
end;

---------------------------------------------------------------------------
--extend
declare
type names_type is table of varchar2(20);
names names_type:=names_type('aaaa','bbbbb','cccc');
begin
dbms_output.put_line(names.count);
names.extend(4);
dbms_output.put_line(names.count);
names.extend(3,2);

end;

-----------------------------------------------------------------------------
--trim

declare
type names_type is table of varchar2(20);
names names_type:=names_type('aa','bb','cc','dd','ee');
begin
dbms_output.put_line(names.count);
dbms_output.put_line(names(names.last));
names.trim;
dbms_output.put_line(names.count);
dbms_output.put_line(names(names.last));
names.trim(3);
dbms_output.put_line(names(names.last));
end;

-----------------------------------------------------------------------------
--delete

declare
type names_type is table of varchar2(20);
names names_type:=names_type('aa','bb','cc','dd','ee','ff','gg');
begin
dbms_output.put_line(names.count);
dbms_output.put_line(names(3));
names.delete(3);
dbms_output.put_line(names.count);
--dbms_output.put_line(names(3));
dbms_output.put_line(names.next(2));
names.delete(4,6);
dbms_output.put_line(names.count);
end;
------------------------------------------------------------------
--在select into 语句中使用bulk collect字句

declare
type users_table_type is table of p_user%rowtype index by binary_integer;
user_array users_table_type;
begin
select*bulk collect into user_array from p_user;
for i in 1..user_array.count loop
dbms_output.put_line('id:'||user_array(i).user_id);
dbms_output.put_line('name:'||user_array(i).user_name);

dbms_output.put_line('age:'||user_array(i).age);

dbms_output.put_line('___________________');
end loop;
end;

-------------------------------------------------------------------
--批量插
DECLARE
TYPE id_table_type IS TABLE OF NUMBER(6)
INDEX BY BINARY_INTEGER;
TYPE name_table_type IS TABLE OF VARCHAR2(12)
INDEX BY BINARY_INTEGER;
id_table  id_table_type;
name_table name_table_type;
start_time NUMBER(10);
end_time  NUMBER(10);
BEGIN
  for i in 1..100000 loop
    id_table(i):=i;
    name_table(i):='NAME'||to_char(i);
  end loop;
  start_time:= dbms_utility.get_time;
  for i in 1..id_table.count loop
  INSERT INTO DEMO(ID,NAME) VALUES (id_table(i),name_table(i));
  end loop;
  end_time:= dbms_utility.get_time;
  dbms_output.put_line('插入数据所用时间:'||(to_char(end_time-start_time)/100));
END;
---------------------------------------------------------------------
--批量更新

DECLARE
type names_table_type is table of varchar2(20) index by binary_integer;
names_table names_table_type;
begin
for i in 1..1000 loop
names_table(i):=i;
end loop;
forall i in 1..names_table.count
update demo set name=names_table(i) where id=names_table(i);
END;

---------------------------------------------------------------------
--批量删除

DECLARE
type names_table_type is table of varchar2(20) index by binary_integer;
names_table names_table_type;
begin
for i in 1..200 loop
names_table(i):=i;
end loop;
forall i in 1..names_table.count
delete from demo where id:=(names_table(i));
END;







 

分享到:
评论

相关推荐

    PLSQL Developer 12(绿色版)

    3. **更好的调试体验**:PLSQL Developer的调试工具是其一大亮点,新版本可能会加强断点管理、变量观察、步进执行等功能,帮助开发者更高效地定位和解决问题。 4. **增强的数据查看和管理**:新版本可能提升了数据...

    plsql中文版

    在描述中提到“plsql中文版非常好用”,这表明我们讨论的是PL/SQL的一个中文版本,它可能包含了对中文字符集的支持,以及针对中文用户的友好界面和文档。这对于中国开发者和数据库管理员来说,无疑大大提高了使用...

    PLSQL12免安装版

    这个“PLSQL12免安装版”是特别优化过的版本,它省去了传统的安装过程,用户可以直接运行,无需进行复杂的安装步骤,这对于那些频繁更换工作环境或者在没有管理员权限的电脑上使用的开发者来说尤其方便。 “免注册...

    PLSQL8.0中文版

    在这个"PLSQL8.0中文版"的压缩包中,包含的文件可能是PLSQL Developer的安装程序、汉化包以及可能的注册码或激活信息。PLSQL Developer是一款强大的Oracle数据库开发工具,它支持PL/SQL的编写、调试和管理,使得...

    PLSQL试用版

    4. **游标**:PLSQL支持游标,允许程序逐行处理查询结果集,增强了数据处理的灵活性。 5. **数据库对象创建**:可以创建存储过程、函数、包、触发器、类型等数据库对象,这些对象可以直接在数据库中运行,提高效率并...

    PLSQL 7.0中文版

    PLSQL 7.0中文版是专门为中文用户设计的一个版本,提供了友好的中文界面和文档,使得中国开发者在使用过程中更加方便。 PLSQL的主要特点包括: 1. **块结构**:PLSQL基于块结构,由声明部分、执行部分和异常处理...

    plsql绿色免安装版

    此外,PLSQL还支持异常处理,通过BEGIN...EXCEPTION块可以捕获并处理运行时错误,增强程序的健壮性。 包是PLSQL的另一大特色,它将相关的变量、常量、过程和函数组织在一起,形成一个命名空间。使用包可以更好地...

    plsql10.0中文版

    - **调试增强**:调试功能可能得到了加强,包括断点设置、步进执行、变量查看等,让调试过程更为直观和高效。 4. **数据库集成**: - **连接管理**:可能改进了数据库连接管理,支持更多数据库版本和类型,同时...

    plsql7.1中文版与原版

    本文将深入探讨PLSQL 7.1版本,以及中文版与原版的区别。 PLSQL 7.1作为早期的版本,它为开发者提供了丰富的功能,包括编写存储过程、函数、触发器、游标、包等数据库对象。这些对象可以用来执行复杂的业务逻辑,...

    PLSQL中文版

    “PLSQL中文版”指的是该软件经过汉化处理,适应中国用户的需求,界面和文档均以简体中文显示,使得不熟悉英文的用户也能流畅地使用。这个64位版本的PLSQL是专为64位操作系统设计的,确保在这些系统上运行时的高效性...

    PLSQL12 绿色免安装 ORACLE

    在PLSQL12这个版本中,我们可以期待一些新特性和改进,比如增强的代码编辑器,支持语法高亮、自动完成,以及更好的性能分析工具。此外,可能还包括更友好的用户界面、更强大的调试功能、优化的查询分析等,这些都是...

    PLSQL 各个版本无限试用(双击即可)

    2. PLSQL Developer 11无限试用.reg:11版可能增强了对Oracle 11g新特性的支持,例如ACO(Automatic Call Optimization)和Advanced Queuing等。此外,它可能还改进了用户界面和性能。 3. PLSQL Developer 12无限...

    PLSQL Developer中文免安装版

    3. 插件和扩展:可能有额外的插件或扩展,以增强PLSQL Developer的功能。 4. 文档和帮助文件:可能包含中文版的用户手册、快速入门指南等,帮助用户学习和解决问题。 5. 支持文件和库:可能包含必要的动态链接库...

    PLSQL Developer v11.0.2 免安装版.rar

    总的来说,PLSQL Developer v11.0.2免安装版提供了一个轻量级但功能强大的解决方案,让数据库开发者能够在不增加系统负担的情况下,高效地进行PL/SQL编程和数据库管理工作。通过简单配置,用户可以在任何可以运行的...

    PLSQL 汉化版 ORACL可视化数据库管理工具

    这款工具的汉化版使得中国用户能够更方便地使用,避免了语言障碍,增强了用户体验。 PLSQL(Procedural Language/Structured Query Language)是ORACLE数据库系统中的一个编程组件,它扩展了SQL,允许编写存储过程...

    plsql 汉化版 插件 Oracle

    "plsql汉化版 插件 Oracle"这个标题暗示了我们讨论的是关于PLSQL Developer的一个汉化插件,它是为了帮助中国用户解决语言障碍,提供中文界面,从而提升使用体验。 描述中提到的"Oracle客户端可视化工具汉化插件...

    PLSQL.Developer10.0.3中文版,含注册机,含CnPlugin插件,win8win10不卡顿

    标题提到的是PLSQL Developer的10.0.3中文版,这意味着它已经进行了汉化处理,方便中文用户使用,而无需面对语言障碍。 描述中提到了“含注册机”,这通常是指用于激活软件的工具,因为PLSQL Developer是商业软件,...

    PLSQL Developer 9.0.6.1665 中文 绿色 破解版

    2、采用最新官方9.x汉化包,汉化进一步得到加强。 3、从9.0.6.1665版开始,我打包后都在干净的XP SP3环境中测试过,默认显示中文且无错。有问题的朋友请向我反馈。 4、此版官方更新较快,与上一版本9.0.6.1664更新...

    PLSQL+Developer9绿色免安装中文版

    在9版中,可能包含了更好的代码编辑器、增强的调试工具、更完善的数据库对象管理等功能。 压缩包内的文件名列表揭示了PLSQL Developer运行所需的一些配置文件和库: 1. PlanDesc.cfg、BeautifierPreview.cfg、...

    plsql工具很好用

    同时,PLSQL支持游标的嵌套和动态SQL,增强了其灵活性。 PL/SQL的存储过程和函数是其核心特性之一。它们可以被存储在数据库中,供多次调用,从而提高了代码复用性和性能。存储过程可以包含输入、输出参数,甚至可以...

Global site tag (gtag.js) - Google Analytics