Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码
2011-11-07 19:44
507 查看
Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码
使用/NOLOG选项来启动SQLPlus,这种方式只是进入SQLPlus环境,而不会连接到数据库。接下来再通过CONNECT命令,并提供用户名和密码进入数据库。
如果想让SQL*Plus知道你已经完成了PL/SQL的录入,你必须使用一个斜杠"/"作为结尾。如:
斜杠"/"的含义是“执行刚录入的这个语句”,不管刚录入的是一个SQL语句还是一个PL/SQL代码。
斜杠"/"不属于PL/SQL语法,也不属于SQL语法,它是SQL*Plus特有命令;
斜杠"/"只能自己出现在一行中,这一行不能再有其他的命令
Oracle又提供了@@命令。两个@符号意味着,在本次调用中“请假设当前目录已经改成了当前执行文件所在的目录。”
定义变量:
要引用这样的变量,需要使用&符号,你还要在变量周围加上单引号
绑定变量:
输出保存到文件
默认扩展名:lst
在启动时加载你的自定义环境。
1.首先寻找$ORACLE_HOME/sqlplus/admin/glogin.sql脚本。
2.接下来,SQL*Plus就会运行当前目录下的login.sql脚本,如果有这个脚本的话。
如果已经存在此函数的话,CREATE命令就会失败,并给出错误消息ORA-0955:name is already used by an existing object.
能够避免先删除然后重建程序的方法所带来的副作用;换句话说,它能够保留你已经赋予其他用户或者角色的针对这个对象的权限。
执行以上命令,如果出现编译错误的话可以通过如下命令查看命令。
如:
category为类别
去掉权限
创建别名:
删除整个包(声明部分和包体)
只删除包体。
如果你删除了一个存储过程,而其他程序又调用了该存储过程,那么这些调用程序就会被标识成无效。
注:我感觉这个工具有点像是一个混淆器的感觉。
Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码
2.3.1 启动SQL*Plus
OS>sqlplus OS>sqlplus username/password OS>sqlplus /nolog
使用/NOLOG选项来启动SQLPlus,这种方式只是进入SQLPlus环境,而不会连接到数据库。接下来再通过CONNECT命令,并提供用户名和密码进入数据库。
SQL>CONNECT username/password@sid
2.3.3 运行PL/SQL程序
SQLPlus缺少会“吃掉”输出内容,为了正常地显示内容。你必须要通过一个SQLPlus的命令打开SERVEROUTPUT。如:SQL>SET SERVEROUTPUT ON
如果想让SQL*Plus知道你已经完成了PL/SQL的录入,你必须使用一个斜杠"/"作为结尾。如:
SQL>BEGIN 2 DBMS_OUTPUT.PUT_LINE('Bey look'); 3 END; 4 /
斜杠"/"的含义是“执行刚录入的这个语句”,不管刚录入的是一个SQL语句还是一个PL/SQL代码。
斜杠"/"不属于PL/SQL语法,也不属于SQL语法,它是SQL*Plus特有命令;
斜杠"/"只能自己出现在一行中,这一行不能再有其他的命令
2.3.4 运行脚本
SQL>@abc.sql SQL>START abc.sql
Oracle又提供了@@命令。两个@符号意味着,在本次调用中“请假设当前目录已经改成了当前执行文件所在的目录。”
2.3.6 其他SQL*Plus任务
要看当前会话的各种设置的值,使用这个命令:SQL>SHOW ALL
定义变量:
SQL>DEFINE x="abc" SQL>DEFINE x
要引用这样的变量,需要使用&符号,你还要在变量周围加上单引号
SQL>SELECT '&x' FROM DUAL;
绑定变量:
SQL>VARISBLE x VARCHAR(10) SQL>BEGIN 2 :x :='h'; 3 END; 4 /
输出保存到文件
SQL>SPOOL report SQL>... SQL>SPOOL OFF
默认扩展名:lst
在启动时加载你的自定义环境。
1.首先寻找$ORACLE_HOME/sqlplus/admin/glogin.sql脚本。
2.接下来,SQL*Plus就会运行当前目录下的login.sql脚本,如果有这个脚本的话。
2.3.7 SQL*Plus中的错误处理
如果SQLPlus中遇到了一个SQL或者PL/SQL的错误,出现错误后中止SQLPlus运行。SQL>WHENEVER SQLERROR EXIT SQL.SQLCODE SQL>WHENEVER SQLERROR SQL.SQLCODE EXIT ROLLBACK
2.4.1 创建存储过程
CREATE FUNCTION XXX
如果已经存在此函数的话,CREATE命令就会失败,并给出错误消息ORA-0955:name is already used by an existing object.
CREATE OR REPLACE FUNCTION XXX
能够避免先删除然后重建程序的方法所带来的副作用;换句话说,它能够保留你已经赋予其他用户或者角色的针对这个对象的权限。
执行以上命令,如果出现编译错误的话可以通过如下命令查看命令。
SQL>SHOW ERROR category [schema.]object
如:
SQL>SHOW ERROR FUNCTION XXX
category为类别
2.4.3 显示存储过程
SQL>DESCRIBE XXX 可以查看存储过程的调用接口信息。 如果想查看整个源代码的话,可以查看USERSOURCE或TRIGGERSOURCE表中的内容。2.4.4 存储过程的授权和别名
授权GRANT EXECUTE ON XXX TO username/rolename;
去掉权限
REVOKE EXECUTE ON XXX TO username/rolename;
创建别名:
SQL>CREATE OR REPLACE SYNONYM XXX FROM user.XXX;
2.4.5 删除存储过程
DROP FUNCTION XXX;
删除整个包(声明部分和包体)
DROP PACKAGE pkgname;
只删除包体。
DROP PACKAGE BODY pkgname;
如果你删除了一个存储过程,而其他程序又调用了该存储过程,那么这些调用程序就会被标识成无效。
2.4.6 隐藏存储过程的源代码
可以通过Oracle提供了一个叫wrap的命令行工具。注:我感觉这个工具有点像是一个混淆器的感觉。
相关文章推荐
- pl/sql programming 02 创建并运行plsql代码
- 利用PL/SQL Developer工具在Oracle库中创建同名词Synonym的方法
- oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
- oracle使用PL/SQL创建用户
- Oracle PL/SQL 实例精解 所用STUDENT模式 代码
- 源码-Oracle数据库管理-第十二章-使用PL/SQL创建Oracle程序-Part 2(PL/SQL语言概览)
- Oracle中加密PL/SQL代码
- 免安装Oracle运行pl/sql developer
- 使用pl/sql来Oracle创建表空间和创建用户 .
- Oracle PL/SQL 程序设计读书笔记 - 第3章 语言基础
- 源码-Oracle数据库管理-第十二章-使用PL/SQL创建Oracle程序-Part 3(PL/SQL语言概览)
- ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
- 之前创建了一个表空间,然后今天不小心把表空间文件给删除了。然后用pl/sql连接数据库的时候,报ORA-01033错误。ora-01033:oracle initializationg or shut
- Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理
- 使用Oracle SQL Developer 编写运行 PL/SQL 块
- 关于Oracle PL\SQL代码的wrapper与unwrapper
- Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制
- 在pl/sql中创建oracle的procedure 并调用
- 使用Oracle SQL Developer 编写运行 PL/SQL 块
- oracle package pragma SERIALLY_REUSABLE(告诉PL/SQL 的运行时引擎,在数据引用之时不要保持包级数据。)