Oracle 客户端 PL/SQL Developer 12.0.7、15.0.4 安装与使用,数据导出,Oracle 执行/解释计划,for update
目录PL/SQL 12.0.7 下载与安装注册码注册Pl/Sql 汉化PL/SQL 12.0.7 下载与安装1、官网下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html。选择自己需要的相应版本,如下所示为 12.0.7 版本。PL/SQL Developer 12.0.732 bit:plsql...
目录
PLsql 修改查询结果 for update 与 rowid
export tables -> 导出表 -> sql 文件
prompt、set feedback、set define 详解
PL/SQL 12.0.7 下载与安装
虽然一个Oracle 数据库 服务器中 可以安装多个数据库,但是 一个数据库需要占用非常大的内存空间, 因此一般一个服务器只安装一个数据库 。每一个数据库 可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表), 一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限 。不同的用户 创建的表,只能被当前用户访问。因此在 Oracle 开发中,不同的应用程序只需使用不同的用户访问即可 。 |
1、官网下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html。选择自己需要的相应版本,如下所示为 12.0.7 版本。
PL/SQL Developer 12.0.7 | 32 bit: plsqldev1207x32.msi (33M) 64 bit: plsqldev1207x64.msi (39M) | |
You can additionally download a Language pack for several languages. If you want to know what's new in 12.0.7, download or view the pls1207.txt file. If you want to know what's new in 12.0.0, please visit the PL/SQL Developer 12.0 page. |
3、以管理员身份运行 plsqldev12707x64.msi 进行安装,否则容易安装失败。基本都是默认,修改安装目录,没有复杂的地方。
第一项是安装试用版,第二项是输入授权信息,第三项是使用当前存在的授权信息。
先选择第一个,后续再进行授权。
4、第一个完整安装,第二个是自定义安装。默认第一个即可。然后下一步,开始安装,安装完成。
PLSQl register
1、因为本地已经安装了 Oralce ,所以 PL/SQL 可以直接使用账号和口令登录,不需安装要额外的 Oralce Instant Client(如果本地没有安装Oracle数据库,则参考下面的章节)。
2、此口令亲测有效,选择 help - > resgiter 输入口令即可。
product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le
serial Number:226959
password: xs374ca
Pl/Sql 设置中文语言
1、在官网下载地址:https://www.allroundautomations.com/bodyplsqldevreg.html 中,每个版本中都提供对应的汉化包 "You can additionally download a Language pack for several languages.",点击即可下载。
2、双击进行安装,如果 PL/SQL 版本大于12.0 ,则选择"确定",否则选择"取消"。
3、重启 PL/SQL 汉化成功。
PL/SQL 15.0.4 下载与安装
1、官网:Free trial - Allround Automations。
2、直接下载试用,功能与付费的是一样的,默认试用30天。
https://www.allroundautomations.com/files/trial/plsqldev1504x64.msi。
3、安装的时候先选择试用,安装完成后,然后启动,可以先不用急着连接数据库,先进去再说。
切换中文与注册
注册码亲测有效,不知道随着时间的推移是否会失效。
产品编号(Product Code):kfj6yg6rfyhqcha6cbgs6fsw3kyje7a6qr
序列号(Serial Number): 276182
口令(Password): xs374ca
使用instantclient连接Oracle数据库
1、PL/SQL Developer 工具无法直接连接Oracle数据库,必须先从Oracle官网下载Oracle客户端-instantclient,PL/SQL Developer 底层必须依赖它进行交互(除非本机也安装了Oracle数据库,否则必须从官网下载instantclient)。
https://www.oracle.com/cn/database/technologies/instant-client/downloads.html
https://download.oracle.com/otn_software/nt/instantclient/1925000/instantclient-basic-windows.x64-19.25.0.0.0dbru.zip
https://download.oracle.com/otn_software/nt/instantclient/2115000/instantclient-basic-windows.x64-21.15.0.0.0dbru.zip
2、下载后,解压将得到 instantclient_21_15 目录,可以放在本地磁盘任意目录。其中 instantclient_21_15\network\admin 目录是Oracle客户端配置文件的默认目录,可以将tnsnames.ora、sqlnet.ora和oraaccess.xml等文件放置在此目录中。同时也可以配置环境变量TNS_ADMIN,用于指定配置文件存放目录。
3、运行 PL/SQL Developer 工具,打开 首选项->Oracle->连接,设置 OCI 库,值是 instantclient_21_15\oci.dll 文件。
4、然后重新运行 PL/SQL Developer 工具就可以连接 Oracle数据库了。
5、此时查询的结果通常中文会乱码,这是因为本地的编码和服务器端编码不一致,使用如下语句查询服务器端编码。解决办法:打开 首选项->Oracle->连接,添加 Oracle 环境变量 NLS_LANG,值是下面查询的结果值,重启PL/SQL就不会再中文乱码了。
select userenv('language') from dual;-- SIMPLIFIED CHINESE_CHINA.ZHS16GBK
tnsnames.ora 文件使用
1、默认情况下登录的时候是下面这样的,填写用户名、密码、数据库URL地址,有时候数据库URL地址比较长,或者地址比较多,很难记住,此时可以使用 tnsnames.ora 文件。
2、tnsnames.ora 文件的用途就是配置被连接的数据库地址,方便登录时可以直接选择数据库,而不需要手动输入,但是用户名和密码还是手输的。
3、在 instantclient_21_15\network\admin 目录 下新建 tnsnames.ora 文件,输入内容如下,可以配置多个数据库地址,主要就是修改 HOST-主机IP、PORT-端口、SERVER_NAME-服务实例名,:
#本机oracle数据库地址
ORCL@localhost =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
#远程oracle数据库地址
ORCLgbk@172.16.11.37 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.11.37)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLgbk)
)
)
PLsql 修改查询结果 for update 与 rowid
1、在 plSql 工具中对于查询的结果如下想要直接修改,可以使用如下两种方式:
select t.*, t.rowid from tableName t ; -- 借助 rowid 对查询结果进行修改
select t.* from tableName t where xxx for update; -- 使用 for update 关键字对查询结果进行修改
2、相同点:都需要点击左上角的"锁",先解锁,然后修改数据,接着点击旁边“绿色的勾”完成编辑,最后点击"提交"或者"回滚"按钮。
3、不同点:for update 运行之后,无论有没有修改数据,都必须点击提交或者回滚,不然会造成当前数据锁死,从而导致其它客户端只能查询,无法新增、修改,删除。而 rowid 方式不会存在这种情况。
4、select .......for update 会加悲观锁,where 条件用了唯一索引/主键,则是行锁,否则就是表锁。
5、推荐使用 rowid 方式,因为当很多人都操作数据库中某种表时,但凡其中一个人执行了 for update 之后,即没提交也没回滚,那么其它人对这个表进行修改、删除、新增时,就会一直卡死,特别是生产环境,还会导致 web 程序对这个表做新增、删除、修改操作时也会卡死。
PLSQL 设置快捷模板
1、类似 IDEA 可以设置时效模板,输入 main 便可以自动补全 public static void main 方法一样,PLSQL 也可以设置,比如输入 sf 便能自动补全 select * from 。
2、设置方法如下:配置 -> 首选项 -> 用户界面 -> 编辑,然后输入自定义的模板,最后保存文件,然后可以在编辑器中输入前缀,按空格键,便会自动补全。
PL/SQl 窗口类型
窗口类型 | 描述 |
---|---|
程序窗口 | 用于编写程序,比如:Function(函数)、Java source、Package(包)、Package body、Package specification、Procedure(存储过程)、Trigger(触发器)、Type(类型)、Type body、Type specification。 |
测试窗口 | |
SQL窗口 | 用于执行SQL语句的窗口。 |
报告窗口 | |
命令窗口 | 用于执行SQL命令的窗口,类似SQL Plus命令面板。 1、可以运行具体的命令,也可以指定sql文件路径,如:SQL> @F:\Temp\emp_dept.sql; 此时将运行整个文件的内容,这在数据量比较大时非常有用。 |
解释计划窗口 | 分析 sql 执行计划的窗口,用于 sql 优化,查看 sql 走索引的情况,耗时情况等。参考下面的《Oracle 执行/解释计划》 |
图表窗口 | 1、创建对象之间的图标关系,比如 E-R 图,参考下面的《查看 E-R 关系图表》 |
自动提交 SQL
1、SQL窗口执行SQL时,如果想让事务自动提交,则可以勾选下面的选项。
PL/SQl 导出数据
下面是 PL/SQL 导出数据几种常用的方式:
export user objects(导出用户对象):只能导出结构,不能导出数据,如表结构、视图、序列、存储过程/函数等,导出格式为 .sql export tables(导出表):可以导出表结构和数据,但是只能导出表,但是不能导出视图、序列、存储过程/函数等,导出格式比较多样。 |
使用图形化界面操作优点是比较直观,简单,但是速度比较慢,没有 exp/imp 导入导出数据 速度快。
export user objects 导出用户对象
1、tools ->export user objects(导出用户对象):导出表结构(不含数据),以及视图、序列、存储过程/函数等的脚本,导出为 .sql 文件格式。
2、导出页面中的几个选项:
包括存储:如果勾选,则导出的 sql 脚本中会含有表空间信息; 包括所有者:如果勾选,则导出的 sql 脚本中会含有用户名信息。 |
3、如果上面未选择任何表、视图、序列、存储过程等用户对象,则表示导出全部,当下面的进度条不再闪烁,左侧的红色消失时,表示导出成功。
4、导出的 sql 脚本中会一些提示(prompt)信息,以及开头结尾会有 "set define off、set define on" 等信息。
export tables -> 导出表 -> sql 文件
1、tools(工具)->export tables(导出表)-> 选择中间的 'sql inserts' 选项卡 ,导出的 sql 文件内容是 insert 插入语句,其中有几个复选框:
delete table(删掉表):如果勾选了,则导出的脚本会有删表语句,即 drop table xxx cascade constraints; create tables(创建表):如果勾选了,则导出的脚本会有建表语句,即 create table xxx(.... 包括存储:如果勾选了,则导出的脚本会有表空间信息 where clause(where 子句):如果勾选了创建表,这里为空,则导出表结构与数据;如果勾选了创建表,这里设置为 "where rownum<1",则只导出表结构;如果未勾选创建表,这里为空,则只导出数据,不含表结构。 其余的复选框都可以取消勾选,用处不大。 |
2、当未选择任何表,点击导出按钮时,默认为导出全部。
3、导出的 sql 脚本中会一些提示(prompt)信息,以及开头结尾会有 "set define off、set define on" 等信息,如果是手动导入,则需要先将其删除,或者注释掉,否则脚本导入的时候会报错。如果使用 "Pl/SQL Developer" 工具导入,则可以不用清理。
export tables ->导出表 ->pde 文件
1、tools(工具)->export tables(导出表)-> 选择右侧的 "Pl/SQL Developer" ,导出的文件是 PL/SQL Developer 工具独有的 .pde 文件,导入时也只能使用 PL/SQL Developer 工具导入。
2、导出的内容是二进制信息,有点类似 .dmp 文件,用文本编辑器打开是乱码的。
选择了导出对象时,只导出选中的对象,否则默认导出全部。 Where 子句:可以设置导出数据的条件,比如 where rownum<1 则表示不导出表中的数据。 自动默认导出表结构,以及约束、索引等信息。 |
prompt、set feedback、set define 详解
1、部分导出方式导出的内容中含有 prompt、set feedback、set define 关键字,它们在sql窗口会无法识别导致执行报错,但是可以在命令窗口中执行。
prompt Importing table dept...
set feedback off
set define off
insert into dept (DEPTNO, DNAME, LOC) values (71, '预算管理部门', '深圳市');
insert into dept (DEPTNO, DNAME, LOC) values (82, '支付管理部门', '长沙市');
prompt Done.
prompt xxx | 提示信息。prompt 后面的内容会原样输出,类似 System.out.print(xxx) |
set feedback on|off|n | 反馈信息。每执行一条 sql 命令,Oracle 都会给一条反馈信息,如: (1) 创建表成功时,Oracle 会反馈 Table created (3)、on开启,off关闭,数字n表示当一条 sql 语句返回大于等于 n 行记录的时候,则反馈,反之,不反馈。 |
set define on|off|* | 定义信息。定义特殊变量 (3)、on开启,off关闭,* 表示新的替代变量,默认的是 &,也可以定义为其他字符。 |
PL/SQl 导入数据
工具(tools) ->导入表 ->SQL 插入
1、对应上面的 'export tables -> 导出表 -> sql 文件' 方式,即便是纯 insert 语句的 sql 文件,也能导入。
使用命令行:此时无需指定‘sql*plus 可执行文件’,可以直接导入,需要手动提交。推荐方式。 |
使用sql*plus:必须选择 sql*plus 可执行文件,如果电脑上面安装了 Oracle数据库,则会默认安装上。 可以在电脑左下角搜索 sqlplus 找到它的安装路径,或者 Win + R 打开运行,然后输入 sqlplus 回车打开窗口后,也可以看到它的安装路径。 |
工具(tools) ->导入表 ->pde 文件
1、对于上面的 'export tables ->导出表 ->pde 文件',PL/SQL Developer 工具独有的 .pde 文件格式,导入时也只能使用 PL/SQL Developer 工具导入。
删除表:勾选时,会自动先删除已存在的表,然后自动再创建表。 导入文件:选中了 .pde 文件后,窗口中就能看到文件中即将导入的表名。 日志:导入成功或者失败,可以在'日志'窗口查看详细日志。比如示例。 |
Oracle 执行/解释计划
1、Mysql 的 "explain +查询语句" 可以查看索引的使用情况,Oracle 可以通过【执行计划】进行查看,比如查看我们设置的索引是否生效,写的 select 语句是否走了索引等等。
2、执行计划是一条查询语句在 Oracle 中的执行过程或访问路径的描述。如果安装了 PLSQL 工具,则非常容易查看 Oracle 的执行计划。
3、PLSQL 配置执行计划需要显示的项:配置 —> 首选项 —> 窗口类型 —> 计划窗口 —> 根据需要配置要显示在执行计划中的列。
4、查看执行计划方式1:在 SQL 窗口执行完一条 select 语句后,按 F5 即可查看刚刚执行的这条查询语句的执行计划。
5、查看执行计划方式2:选中 SQL 窗口中的一条 select 语句,然后点击 "工具->解释计划",即可查看这条查询语句的执行计划。
6、查看执行计划方式3:文件->新建->解释计划窗口,打开之后,运行 sql 即可查看。
7、执行计划的常用列字段解释:
基数(Rows):Oracle估计的当前操作的返回结果集行数
字节(Bytes):执行该步骤后返回的字节数
耗费(COST):CPU耗费:Oracle估计的该步骤的执行成本,用于说明SQL执行的代价,理论上越小越好(该值可能与实际有出入)
时间(Time):Oracle估计的当前操作所需的时间
8、执行顺序:根据第一列的缩进来判断,向右缩进最多的最先执行(缩进相同时,最上面的最先执行)。如动图上所示,最简单的方式是点击上面的箭头按钮,能清楚的看到执行的先后顺序。
Oracle 表访问常用的几种方式: TABLE ACCESS FULL(全表扫描,速度最慢) |
索引扫描又分如下几种: INDEX UNIQUE SCAN(索引唯一扫描) INDEX RANGE SCAN(索引范围扫描) INDEX FULL SCAN(索引全扫描) INDEX FAST FULL SCAN(索引快速扫描) INDEX SKIP SCAN(索引跳跃扫描) |
查看 E-R 关系图表
1、打开 pl/sql developer 并登陆。
2、找到"视图"菜单->勾选"对象浏览器" 打开对象窗口,找到 Tables(表格)。
3、点击 “文件”-->“新建”-->"图表窗口"。
4、将 “Tables” 对象文件夹里的 table 表格拖动到图表窗口。
设置窗口字体大小及颜色
中文乱码问题解决
1、使用 PLSQL Developer 工具 select 查询时,如果发现其中的中文是乱码 ???,或者插入后中文数据出现了乱码,都表明是客户端与服务端的字符变不一致导致的,此时需要修改客户端编码。
查看数据库服务器端编码: select * from v$nls_parameters;
1、如下所示 NLS_LANGUAGE 表示语言、NLS_CHARACTERSET 表示字符集。
修改客户端字符集编码
1、查询数据库服务端字符集完整名称:select userenv('language') from dual;
2、常用的字符集有:
AMERICAN_AMERICA.US7ASCII
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
AMERICAN_AMERICA.UTF8
3、无论是什么字符集,只需要保证客户端与服务端一致即可。设置系统环境变量,变量名为 NLS_LANG,值为查询出来的字符集。
4、然后重启 pl/sql 工具即可生效。
设置日期与时间格式
1、查询结果中日期默认分隔符是左斜线,可以按照自己的喜好自定义格式。首选项->用户界面->日期/时间->自定义日期格式即可,如:yyyy-mm-dd。
设置 NULL/空 值颜色
1、查询结果集中 NULL 和空字符串都是看不见的,不好区分,这时候可以给 NULL/空值 设置一种特殊的颜色以便查看。
2、【首选项】→【窗口类型】→【SQL 窗口】→【空值单元格颜色】前的区块选择喜欢的颜色并确定即可。
自动替换
1、首选项->用户界面->编辑器->自动替换,先编辑,然后保存到文件,比如 xxx.txt。
2、文件中每行输入一个项目,格式:<word>=<replacement[.tpl]>
3、这样后期编写 sql 时,只需要输入 <word> 然后键入空格后,就能自动替换为 <replacement[.tpl]> 内容。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)