SQLPLUS执行PL/SQL语句块

1.首先登录Oracle HR schema:

2.对于PL/SQL程序分号表示语句的结束;而使用 "."  号表示整个语句块的结束,也可以省略。按回车键后,该语句块不会执行,即不会发送到数据库服务器,而是必须使用 "/" 符号执行PL/SQL 语句块

使用 "/" 执行PL/SQL 语句块

3. 在上例中,虽然执行了PL/SQL 程序,但是没有输出结果的显示。数据库服务器肯定将数据传输给了SQLPLUS,并且变量var_first_name 和 var_last_name 都已经被复制,问题是结果没有显示在SQLPLUS上,解决办法是在执行上例中的PL/SQL 程序之前,执行如下命令:

此后,可以看到结果显示在SQLPLUS上:

总结:为了在SQLPLUS中看到PL/SQL 程序 执行的结果,需要:

1 . set serveroutput on

2. 在PL/SQL语句块末尾使用 "/" 执行PL/SQL语句块

severoutput 默认情况下是关闭的,为了 设置 set serveroutput on ,可以有以下办法:

1.每次手动输入 set serveroutput on ,手动开启。

2.在SQLPLUS 中的 glogin.sql 文件中加一条SQL语句: set serveroutput on;

此后,每次启动SQLPLUS 就会自动 run 这条语句,无需手动输入。

本地的glogin.sql 文件位置为: D:\Oracle_Install_Dir\app\oracle\product\11.2.0\server\sqlplus\admin\glogin.sql

加了 set serveroutput on;之后的glogin.sql 文件如下:

此时,在SQLPLUS中不需要手动输入set serveroutput on ,即可执行 PL/SQL语句块,看到结果。

3.可以编写一个触发器,一旦数据库登录即修改参数serveroutput 为 on.

原文地址:https://www.cnblogs.com/luffystory/p/10165830.html

时间: 2024-07-29 02:14:32

SQLPLUS执行PL/SQL语句块的相关文章

zbb20170601 oracle PL/SQL 语句块 游标 自定义游标 异常处理EXCEPTION

--打开日志输出 set serverout on -- PL/SQL 语句块: -- 声明部分 declare v_i number; v_sum number:=0; -- 执行部分 begin v_i := 1; -- 简单loop循环 loop v_sum:=v_sum+v_i; v_i:=v_i+1; if v_i>100 then exit;-- 跳出循环 end if; end loop; dbms_output.put_line(v_sum); -- 异常处理部分 end; --

使用Oracle的DBMS_SQL包执行动态SQL语句

使用Oracle的DBMS_SQL包执行动态SQL语句 引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 引用自:http://www.cnblogs.com/simonhaninmelbourne/archive/2013/01/23/2872438.html 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用D

FORM中执行动态sql语句

今天在 FORM BUILDER中用 execute immediate 'sql staments'执行动态sql时报错. 后查发现form中用forms_ddl函数执行动态sql,并且此函数暗含了commit: 详细介绍如下: 一.FORMS_DDL函数 FUNCTION FORMS_DDL(statement  VARCHAR2); 用于动态执行SQL语句与PL/SQL语句 注意事项: 1.参数statement的最大容量不能超过32K. 2.DDL类型的SQL语句,暗含一个commit命

Sql Server 查看当前正在执行的Sql 语句

查看Sql Server 当前正在执行的Sql 语句,可以使用 sys.sysprocesses 或 sys.dm_exec_requests,由于sys.sysprocesses是为了向后兼容而保留的,所以,推荐使用DMV:sys.dm_exec_requests 一,使用sys.sysprocesses Contains information about processes that are running on an instance of SQL Server. These proce

LoadRunner 执行单句SQL语句

LoadRunner 执行单句SQL语句 Action() { int NumRows=0; int i=1; //建立数据库连接 lr_db_connect("StepName=DatabaseConnection", "ConnectionString=Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sc;Initial Catalog=EGMIS_NET;Data Source=19

[转]查询sqlserver 正在执行的sql语句的详细信息

包含用户名,所在数据库,执行的sql语句,执行开始时间,驱动程序,主机名称 SELECT     [Spid] = session_Id, ecid, [Database] = DB_NAME(sp.dbid), [User] = nt_username, [Status] = er.status, [Wait] = wait_type, [Individual Query] = SUBSTRING(qt.text, er.statement_start_offset / 2, (CASE WH

存储过程中执行动态Sql语句

存储过程中执行动态Sql语句 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能,还可以编写更安全的代码.EXEC在某些情况下会更灵活.除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql. 1.EXEC的使用 EXEC命令有两种用法,一种是执行一个存储

EF-记录程序自动生成并执行的sql语句日志

在EntityFramework的CodeFirst模式中,我们想将程序自动生成的sql语句和执行过程记录到日志中,方便以后查看和分析. 在EF的6.x版本中,在DbContext中有一个Database属性,Database.Log就是用来专门记录这种日志的. Database.Log是一个Action<string>委托,给其赋值一个函数就行. 代码如下: using Model; using System; using System.Collections.Generic; using

用Hibernate框架把hql生成可执行的sql语句-Oracle方言

引言:为什么这样的需求,源自公司项目需要,公司的项目使用java的struts2+spring2.5+oracle中间件tuxedo,数据库用的是Oracle,但由于不直接连接数据库,用中间件处理的方式,又不希望有太多服务,所以就开始网络找资料整理编码了.大概花了一个多星期完成了这个任务,现在整理出来与大家分享,也是自己知识的梳理. 1.需要导入相关的jar包: [按字母顺序排列] antlr-2.7.5H3.jar 语言转换工,Hibernate利用它实现 HQL 到 SQL的转换 asm.j