PL/SQL

PL/SQL开发中动态sql的使用

拈花ヽ惹草 提交于 2020-04-11 15:00:11
在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如: SELECT t.empno,t.ename FROM scott.emp t WHERE t.deptno = 20; 但有的时候,从应用的需要或程序的编写出发,都可能需要用到动态SQl,如: 当 from 后的表 不确定时,或者where 后的条件不确定时,都需要用到动态SQL。 一、使用动态游标实现 1、声明动态游标 TYPE i_cursor_type IS REF CURSOR; 2、声明游标变量 my_cursor i_cursor_type; 3、使用游标 n_deptno:=20; dyn_select := 'select empno,ename from emp where deptno='||n_deptno; OPEN my_cursor FOR dyn_select; LOOP FETCH my_cursor INTO n_empno,v_ename; EXIT WHEN my_cursor%NOTFOUND; --用n_empno,v_ename做其它处理 --.... END LOOP; CLOSE dl_cursor; 4、小结:动态游标可以胜任大多数动态SQL的需求了,使用简洁方便居家旅行之必备杀人放火之法宝。 二、使用 EXECUTE

上有政策下有对策,纯绿色j2ee开发环境搭建

巧了我就是萌 提交于 2019-12-05 10:43:04
最近公司里给配了电脑,很happy的使用着,然后发现各种禁用,注册表不能改,软件不能装,我写个环境变量都不行,擦!!!问候维护的主治大夫!!!!重装?当然不行,公司内网会连不上的,连个无线网还要证书,尼玛证书跟域名绑定在一起的,我要是不用公司内网的域名,我这台电脑就是个连不上网的废物,所有的源代码,包括开发都只能远程连到服务器上分配出来的虚拟机上。擦!!!!问候维护的主治大夫!!!!! 上有政策下有对策,我就喜欢在本地做怎么了?虚拟机慢的要死,跑个case的时间我都可以看完一整部哈利波特了。便便最不喜欢的就是守规矩,所以,嘿嘿嘿,让我们来做×爱做的事情吧。 整个环境是这样的 JDK+Eclipse+tomcat+oracle Cline+PL/SQL+mysql+php+nginx+firefox 全部绿色,绝对环保。 JDK1.6还是JDK7无所谓,你自己选择,网上有绿色版的,或者直接从安装好的电脑上打包过来也行。 先将JDK解压,比如解压到D盘,D:/JDK. Eclipse本来就是绿色的,我选用的是kepler,eclipse4.3。解压以后,找到eclipse.ini文件,在文件开头加入下面这句话 -vm D:/JDK/bin/javaw.exe 路径以自己的实际路径修改 绿色版的tomcat6.0网上有,自己找资源,解压tomcat,在bin文件夹下找到所有的.bat文件

Oracle之PL/SQL学习笔记之数据类型(三)

别等时光非礼了梦想. 提交于 2019-12-05 05:21:04
Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的。PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到动态执行程序,同时也可以利用变量在PL/SQL内部进行值得传递,甚至可以把值传递出去,最终返回给用户,由此可见,变量是PL/SQL不可或缺的一部分。 1. Oracle预定义的普通数据类型(常见的数据类型) 类型 子类 说明 Oracle中的范围 char Character, String Rowid, Nchar 定长字符串 民族字符集 2000(缺省值1) varchar2 varchar,String ,Nvarchar2 可变字符串 民族语言字符集 4000 Binary_integer 带符号整数,为整数计算优化性能 number(s,p) double,integer,int Long 变长字符串 32767 date 日期型 ROWID 存放数据库行号 URowid 通用行标识符,字符串类型 2. 复合类型 Oracle在PL/SQL中除了提供像前面介绍的各种类型外,还提供一种称为复合类型的类型: 记录和表 2.1 使用%type 我们先看下面的例子: declare c_ename constant varchar2(50):='KING'; v_job

Oracle11gR2 数据库客户端PL/SQL中文乱码的问题

亡梦爱人 提交于 2019-12-04 15:22:03
在进行oracle数据库的数据操作时,发现中文出现了乱码。这真是件麻烦事情。其实解决乱码的问题很简单,需要我们的PL/SQL Oracle客户端的字符集编码和Oracle数据库的字符集编码保持一致。 1、 查看oracle数据库的字符集编码: select * from nls_database_parameters where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY','NLS_CHARACTERSET'); 那么就需要我们修改ALS_LANG=AMERICAN_AMERICA_AL32UTF8。 2、 修改Oracle客户端的ALS_LANG的设置: 变量名:NLS_LANG,变量值:ALS_LANG=AMERICAN_AMERICA_AL32UTF8。 3、 我的电脑--> 属性---> 高级系统设置 --> 环境变量 4、 新建:变量名:NLS_LANG,变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK , 这样在PL/SQL 中就没有乱码,也支持中文的查询。 来源: oschina 链接: https://my.oschina.net/u/2625464/blog/743949

Oracle之PL/SQL学习笔记之PL/SQL块(二)

倖福魔咒の 提交于 2019-12-04 05:06:27
Oracle之PL/SQL学习笔记之PL/SQL块(二) 1. PL/SQL块 PL/SQL 程序由三部分组成,即声明部分,执行部分,例外部分(异常部分) PL/SQL 块的结构如下: declare /*声明部分:在此声明PL/SQL用到的变量,类型以及游标,局部的存储过程和函数*/ begin /*执行部分:过程以及语句,即程序的主要部分*/ exception /*执行异常部分:错误处理*/ end; ‍ ‍ 其中,执行部分是必须的,其余部分是可选的。 ‍ ‍ 最简单的块为: begin null;--执行部分最少要添加null;表示空语句,什么都不执行,但是没有null就报错 end; PL/SQL块可以分为三类: a. 无名块:动态结构,只能执行一次 b. 子程序: 存储在数据库中的存储过程,函数以及包等。当在数据库上建好后可以在其他程序中调用它们 c. 触发器: 当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。 2. 标识符 PL/SQL 程序设计中的标识符定义与SQL的标识符定义的要求相同。要求和限制有: 标识符名不能超过30个字符 第一个字符必须为字母 不分大小写 不能用'-'(减号) 不能是SQL保留字 提示: 一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果。 declare ename emp.ename%type:=

不安装oracle客户端,用plsql连接oracle

荒凉一梦 提交于 2019-12-03 11:21:54
不安装oracle客户端,用plsql连接oracle 常用的Oracle开发的工具有SQL Developer和PL/SQL Developer,个人感觉前者虽然跨平台性优于后者,但比较大(大于300M)占用资源,而且用户体验也一般,而后者相对就小很多(小于30M),用起来也比较顺手。 用PL/SQL连接oracle数据库,不管是本地的还是远程的,一般都需要安装oracle客户端(500M左右)比较大,而且在各个系统上安装也有些讲究,需要修改相应配置文件,有点麻烦。 如何达到不安装oracle客户端,又能使用PL/SQL工具?本人做了如下测试并达到目的。 测试环境:win7系统,未安装过oracle包括客户端,本机虚拟机linux中装有oracle,并有一个可用的orcl实例; 1. oracle官网提供了instantclient,下载instantclient-basic包,将包解压存放到本地,本测试为 D:\STUDY\instantclient_10_2; 2. 在这个目录下新建sqlnet.ora和tnsnames.ora两个文件 sqlnet.ora文件内容 --------------------- SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

PL/sql导入sql文件中文乱码解决办法

牧云@^-^@ 提交于 2019-12-03 11:21:36
从别处接过来的pl/SQL导出文件XX.sql文件,用pl/sql工具中的 import 功能导入到本地库后,发现表的comment注释中文乱码,可通过以下办法解决,特记录如下: 1)进入pl/sql安装目录:我的目录是"E:\Program Files (x86)\PLSQL Developer\" 2)在目录内新建一个startplsql.bat文件,文件内容为 set ORACLE_HOME=E:\app\Again\product\11.2.0\dbhome_1 set PATH=E:\app\Again\product\11.2.0\dbhome_1 set TNS_ADMINE=E:\app\Again\product\11.2.0\dbhome_1\network\admin set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 start plsqldev.exe 3 ) 打开Uedit文本编辑软件,新建一个文本,选择【视图】-【查看代码页】,选择UTF-8并保存,XX.sql文件中内容复制到该页,并另存为ZMXX.sql文件,另存弹出框,下拉选择格式为UTF-8 4)执行startplsql.bat文件,自动启动pl/sql,在执行import导入工具导入ZMXX.sql即可。 来源: oschina 链接: https://my

《oracle pl/sql程序设计》学习笔记一

↘锁芯ラ 提交于 2019-12-03 02:08:03
本篇主要是记录一些容易混淆或者以前理解不够清楚的知识点,只选择常用知识点。 一、case语句和case表达式 1、case语句和case表达式都有两种模式:简单型和搜索型。 简单型:case exp when res1 then ... res2 then ... [else ...] (end case |end); 搜索型 :case when exp1 then ... exp2 then ... [else ...] (end case |end). 2、区别 case语句没有匹配项会报错;case表达式不会,返回null。 case语句以end case结尾;case表达式以end结尾。 二、for循环只有数值型下标和游标两种方式循环,数值型的上下标只在第一次循环前求值(包括表达式计算和四舍五入)。 三、11g以后新增了continue [label1] [when exp1]语句,用于执行下一个循环。 四、异常处理 1、sqlcode 获取当前异常号,正常为0. 2、sqlerrm 最原始的异常信息获取方式,最大512字节。不带参数时返回当前sqlcode对应的信息。带参数时返回指定sqlcode的信息。 3、dbms_utility.format_error_stack 比sqlerrm可容纳字节多,达1899字节,只能返回当前sqlcode对应的信息。 4、dbms

PL/SQL7中的SQL美化器设置

风格不统一 提交于 2019-12-02 19:25:21
一、我的环境 1、操作系统版本:Windows 7 旗舰版,Service Pack 1 2、PL/SQL版本:7.0.1.1066 20000.0915 二、设置方法 1、在“编辑”菜单中找到“PL/SQL美化器选项” 2、如果已经有规则文件,则点击右侧的“浏览”按钮,如果希望自己设置美化器规则,则点击“编辑”按钮 3、在“PL/SQL美化器规则”界面,可以编辑美化器规则。上面是可视化编辑界面,可以编辑对一般SQL语句、控制结构、DML、参数声明、记录类型声明的美化规则。需要注意的是,“语法大小写”中“关键词”的配置有问题,选择“大写”的时候预览界面和实际作用都显示的是小写的关键词,选择“小写”时效果亦反之。 4、配置完毕后,点击“另存为”按钮,将配置结果保存到扩展名为br的文件中 5、此时点击“浏览”按钮将刚才另存为的规则文件(扩展名为*.br)加载进来,设定应用范围(包括“Default 当前用户”和“System Default”全局应用)两种,最后在下面设定自动美化规则,这里我选择不进行自动美化。 6、新建一个SQL窗口,放入SQL语句。点击“编辑”菜单下的“PL/SQL美化器”,就可以对SQL窗口中的SQL语句进行美化了。 注:只要是SQL语句都能用PL/SQL帮助美化,并不是必须为Oracle数据库的查询语句才能被美化

不用安装ORACLE客户端(不执行*.exe)也能使用PL/SQL Developer的说明

陌路散爱 提交于 2019-12-01 15:20:34
1. 有什么好处 网上 ORACLE 的客户端有大致有两种:一种 *.exe 安装文件,一种到 ORACLE 官网下载客户端文件,没有安装可执行文件,绿色的直接解压。但要让 PL/SQL Developer 运行运来还得做相关配置。本文说就是第二种情况。这种方法有些麻烦,但为什么要用,主要的好处是: 重装系统后,不再必须安装 100 多兆 Oracle 客户端工具,这对于开发人员,他们使用 Oracle 数据库需要的仅是用 PL/SQL Developer 或 TODA 之类工具连接 Oracle 功能而已,就可节约时间和磁盘空间,省去重装系统后重装工具的麻烦,可谓一劳永逸。 2. 具体过程 2.1 下载 Oracle Client Package 先到 ORACLE 官网上下载客户端 , 名为 “Instant Client Package” 的软件: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html 下载程序包: instantclient-basic-win32-11.1.0.x.0.zip ( 目前有版本: 11.1.0.6.0 和 11.1.0.7.0) 或 instantclient-basic-win32-10.2.0.x.zip ( 目前有版本: