• Oracle PL/SQL 程序设计读书笔记 第2章 创建并运行 PL/SQL代码


    Oracle PL/SQL 程序设计读书笔记 - 第2章 创建并运行 PL/SQL代码

    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的命令行工具。

    注:我感觉这个工具有点像是一个混淆器的感觉。

  • 相关阅读:
    Leon-ai on WSL
    自动化测试工具
    创建自己的Spring Boot Starter
    Spring Boot内嵌Tomcat session超时问题
    Spring Boot
    Spring Cloud
    Socket编程之Tomcat模拟_采坑汇总
    访问者模式
    模版模式
    策略模式
  • 原文地址:https://www.cnblogs.com/tjpanda88/p/2240223.html
Copyright © 2020-2023  润新知