`
wwty
  • 浏览: 543141 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

变量默认值和EXECUTE IMMEDIATE以及goto关键字

SQL 
阅读更多

 

1、设置变量默认值

直接在参数类型后加:=defaultvalue

例子:

 

V_FUNCNAME                   VARCHAR2(20) := 'IFELSE';

2、EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.

 

它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTE IMMEDIATE,因为它获的收益在包之上。 

 

EXECUTE IMMEDIATE 'select ' || V_JSGS_BTXM_CONTENT_VALUE || ' from dual' INTO RESULT;

规则1:EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交。

规则2:如果通过EXECUTE IMMEDIATE处理DML命令,那么在完成以前需要显式提交或者作为EXECUTE IMMEDIATE自己的一部分. 如果通过EXECUTE IMMEDIATE处理DDL命令,它提交所有以前改变的数据。

 declare
  l_depnam varchar2(20) := 'testing';
  l_loc    varchar2(10) := 'Dubai';
  begin
  execute immediate 'insert into dept values  (:1, :2, :3)'
    using 50, l_depnam, l_loc;
  commit;
 end;

 当执行SQL语句时,不要用分号,当执行PL/SQL块时,在其尾部用分号

 

3、goto关键字:

PL/SQL对于GOTO的使用有一些限制.对于块,循环或者IF语句而言,想要从外层跳转到内层是非法的.

使用GOTO语句从一个IF子句跳转到另一个子句中也是非法的.

最后,从一个异常处理块内部跳转到当前块是非法的.

/*
goto label_name;
只能由内部的语句块跳往外部块 
设置标签
<<label_name>>
可以为循环设置标签
*/
declare
id number:=1;
begin
loop 
dbms_output.put_line('循环次数--'||id);
id :=id+1;
if id=10 then 
goto a;
end if;
end loop;
<<a>>
dbms_output.put_line('跳出循环');
end;
/
 注意,goto语句不能在异常处理中跳转!

 

分享到:
评论

相关推荐

    Oracle中EXECUTE IMMEDIATE用法

    通过`EXECUTE IMMEDIATE`,开发者可以在不知道确切SQL语句的情况下动态构建并执行SQL查询、数据操纵语言(DML)和数据定义语言(DDL)语句。 ### 使用场景与限制 1. **动态DML执行**:`EXECUTE IMMEDIATE`可以用于...

    execute immediate 用法研究

    execute immediate 用法研究 Execute Immediate 是 Oracle 中的一个功能强大且灵活的语句,它可以解析并马上执行动态的 SQL 语句或非...但是,也需要注意使用技巧和限制,以确保正确和高效地使用 Execute Immediate。

    动态SQL之EXECUTE IMMEDIATE

    动态SQL主要分为两种形式:绑定变量(Bind Variables)和EXECUTE IMMEDIATE。绑定变量主要用于减少解析开销,提高性能,而EXECUTE IMMEDIATE则用于执行那些在编译时未知的SQL语句。 EXECUTE IMMEDIATE语法结构如下...

    EXECUTE IMMEDIATE用法小结

    动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTE IMMEDIATE,因为它获的收益在包之上。 — 使用技巧 ...

    oracle动态sql之EXECUTE IMMEDIATE.docx

    EXECUTE IMMEDIATE 语法为:EXECUTE IMMEDIATE v_sql [BULK COLLECT INTO 或 INTO 返回值变量] [INTO 入参 1,.., out 出参 1,..]。 其中,v_sql 是 varchar2 类型或 clob(11g 才支持),可以为 DDL、DML 等动态...

    用execute immediate 执行备份恢复SQLSVR数据库

    下面将详细介绍如何在SQL Server中执行数据库的备份和恢复,以及可能涉及到的编程接口。 首先,SQL Server提供T-SQL(Transact-SQL)语言来管理和操作数据库,包括备份和恢复。备份数据库的基本命令是`BACKUP ...

    oracle动态函数执行[文].pdf

    此外,`EXECUTE IMMEDIATE`还可以结合`INTO`关键字将查询结果直接赋值给变量,或者使用`USING`子句来传递参数。例如: ```sql DECLARE v_sql VARCHAR2(100); v_result VARCHAR2(50); BEGIN v_sql := 'SELECT loc...

    在Oracle中执行动态SQL

    EXECUTE IMMEDIATE的优点是可以减小企业费用并获得较高的性能,但是需要注意其使用技巧和限制。 Oracle中执行动态SQL可以使用动态游标或EXECUTE IMMEDIATE两种方法。动态游标可以实现灵活的SQL语句生成,而EXECUTE ...

    动态SQL 并且把返回的值赋给变量

    本文将详细介绍如何利用`sp_executesql`来执行动态SQL,并重点讨论如何将执行结果赋值给变量,以及一些重要的注意事项。 #### 动态SQL与`sp_executesql` 动态SQL是指在运行时构建的SQL语句,这种类型的SQL可以在不...

    ORCL总结.rar

    本篇文章将深入探讨标题“ORCL总结”所涵盖的两个核心概念:存储过程和EXECUTE IMMEDIATE语句,这两者在数据库编程中扮演着关键角色。 首先,我们来了解“存储过程”。存储过程是一组预先编译好的SQL语句,保存在...

    SQL Server 和 MySql 语法和关键字的区别

    在数据库领域,SQL Server 和 MySQL 是两种广泛应用的关系型数据库管理系统,它们在语法和关键字上有一定的差异。以下将详细解析这些不同之处,以便于在从 SQL Server 迁移到 MySQL 或反之亦然时能顺利进行转换。 1...

    学习oracle动态函数执行.pdf

    总之,Oracle的`EXECUTE IMMEDIATE`提供了一种强大的机制,可以在运行时创建和执行SQL和PL/SQL代码,这对于处理复杂的数据操作,尤其是需要根据用户输入或程序逻辑动态生成SQL的情况,是非常有用的。然而,由于它的...

    动态PL/SQL用法例子

    根据给定的信息,本文将详细解释动态PL/SQL的相关知识点,包括动态SQL的基本概念、如何使用`EXECUTE IMMEDIATE`语句创建表、插入数据以及查询数据等。 ### 动态SQL简介 在PL/SQL中,动态SQL指的是运行时才能确定其...

    Oracle过程中创建视图实例

    本文将深入探讨如何在Oracle过程中使用`EXECUTE IMMEDIATE`来创建视图实例,并介绍其使用场景、语法结构以及注意事项。 #### 一、`EXECUTE IMMEDIATE`概述 `EXECUTE IMMEDIATE`是Oracle PL/SQL中用于执行动态SQL...

    oracle动态函数执行.pdf

    例如,`str_mult`函数的动态执行通过`EXECUTE IMMEDIATE`构建了一个匿名PL/SQL块,将结果赋值给`vnum`变量。而另一个例子展示了如何根据变量`v_table`动态构建并执行查询,获取表`hqf.testtable`的所有数据。 此外...

    C# 链接mysql数据库 出现 给定关键字不在字典中

    - **检查连接字符串**:确认数据库连接字符串的正确性,确保所有关键字和参数都在字典中定义,没有拼写错误。连接字符串通常包含服务器地址、数据库名、用户名、密码等信息。 - **检查代码**:审查代码中涉及...

    Oracle脚本变量使用示例

    EXECUTE IMMEDIATE stmt INTO some_variable; ... END; ``` 这里,`TO_CHAR`函数用于将数值变量转换为字符串,以便拼接SQL语句。 7. **异常处理与变量** 在PL/SQL中,可以捕获并处理异常。异常处理时,可以使用`...

    简单的关键字查询

    下面我们将深入探讨关键字查询的核心原理、常用技术和实际应用。 首先,我们要明白什么是关键字查询。关键字查询是指用户输入一个或多个特定的词(即关键字),系统通过这些词在数据库中查找匹配的数据记录。这种...

    SQL自定义函数.pdf

    函数的其他重要特性包括局部变量的声明和赋值,以及游标的使用。DECLARE语句用于定义函数内的变量,而SET语句则用来给这些变量赋值。游标操作语句允许在函数中处理数据行,而控制流语句(如IF...ELSE、WHILE等)则...

Global site tag (gtag.js) - Google Analytics