`
chineseoa
  • 浏览: 102960 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle中动态SQL的使用

阅读更多

Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者。试验步骤如下:


1. DDL 和 DML

/*** DDL ***/
begin
EXECUTE IMMEDIATE 'drop table temp_1';
EXECUTE IMMEDIATE 'create table temp_1(name varchar2(8))';
end;

/*** DML ***/
declare
v_1 varchar2(8);
v_2 varchar2(10);
str varchar2(50);
begin
v_1:='测试人员';
v_2:='北京';
str := 'INSERT INTO test (name ,address) VALUES (:1, :2)';
EXECUTE IMMEDIATE str USING v_1, v_2;
commit;
end;

2. 返回单条结果
declare
str varchar2(500);
c_1 varchar2(10);
r_1 test%rowtype;
begin
c_1:='测试人员';
str:='select * from test where name=:c WHERE ROWNUM=1';
execute immediate str into r_1 using c_1;
DBMS_OUTPUT.PUT_LINE(R_1.NAME||R_1.ADDRESS);
end ;

3. 返回结果集
CREATE OR REPLACE package pkg_test as
/* 定义ref cursor类型
不加return类型,为弱类型,允许动态sql查询,
否则为强类型,无法使用动态sql查询;
*/
type myrctype is ref cursor;

--函数申明
function get(intID number) return myrctype;
end pkg_test;
/

CREATE OR REPLACE package body pkg_test as
--函数体
function get(intID number) return myrctype is
rc myrctype; --定义ref cursor变量
sqlstr varchar2(500);
begin
if intID=0 then
--静态测试,直接用select语句直接返回结果
open rc for select id,name,sex,address,postcode,birthday from student;
else
--动态sql赋值,用:w_id来申明该变量从外部获得
sqlstr := 'select id,name,sex,address,postcode,birthday from student where id=:w_id';
--动态测试,用sqlstr字符串返回结果,用using关键词传递参数
open rc for sqlstr using intid;
end if;

return rc;
end get;

end pkg_test;
/

分享到:
评论

相关推荐

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    oracle中动态SQL使用详细介绍

    使用动态SQL需要注意性能问题,因为每次执行都要在运行时解析和编译SQL语句。如果频繁执行,可能会增加数据库的开销。为优化性能,可以考虑使用预编译的游标(如`DBMS_SQL`包)或者存储过程来缓存SQL语句。 此外,...

    oracle关于动态SQL的使用

    本篇文章主要介绍了如何在PL/SQL中使用动态SQL,包括两种主要方法:本地动态SQL和DBMS_SQL包。 首先,让我们了解一下静态SQL与动态SQL的区别。静态SQL是指在编写PL/SQL块时已经明确的SQL语句,它们在编译时就已经...

    Oracle动态执行SQL四种方式的例子

    在Oracle数据库管理中,动态执行SQL语句是一种强大的功能,允许开发者在运行时构建和执行SQL语句,这对于处理不确定或变化的数据结构尤其有用。本文将深入探讨Oracle中动态执行SQL的四种主要方法,并通过具体示例...

    oracle 动态SQL

    Oracle 动态SQL是数据库编程中的一个重要概念,它允许在运行时构建和执行SQL语句,从而提高了灵活性和适应性。...正确理解和使用动态SQL可以极大地增强数据库应用程序的功能和适应性,但同时也需要注意安全性和性能。

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(一)

    通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...

    在Oracle中执行动态SQL

    在Oracle中,可以使用动态游标来实现动态SQL。动态游标是指可以在程序中动态生成的游标,它可以根据不同的条件和参数生成不同的SQL语句。 例如,以下是使用动态游标实现Sql的示例代码: ``` DECLARE TYPE i_...

    基于Oracle高性能动态SQL程序开发

    接下来,通过几个具体示例来展示如何使用动态SQL解决实际问题。 **示例一:创建表并插入数据** 首先,创建一个名为`EMP`的表,并向其中插入数据。 ```sql CREATE OR REPLACE PROCEDURE CREATE_TABLE AS BEGIN ...

    Oracle的SQL监视工具SQLTracker

    这款工具在Oracle数据库环境中扮演着重要角色,它可以帮助用户实时监控SQL语句的执行情况,识别性能瓶颈,从而提高系统的整体效率。 在描述中提到,SQLTracker可以在Windows 11操作系统上直接运行,这意味着它可能...

    oracle 中的SQL语言基础

    oracle 中的SQL语言基础 oracle 中的SQL语言基础

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    Oracle 11g SQL和PL SQL从入门到精通 pdf格式电子书 下载(二)

    通过学习本书,读者不仅可以掌握oracle常用工具oracle universal installer、net comfiguration assistant、sql developer、sql*plus的作用及使用方法,而且可以掌握sql语句和pl/sql的各种基础知识和高级特征(记录...

    Oracle动态SQL之本地动态SQL的使用.pdf

    在处理动态SQL时,如果有需要绑定参数,则可以在EXECUTE IMMEDIATE命令中使用USING子句,将SQL语句中的占位符替换为具体的参数值。如果是执行包含RETURNING子句的非查询DML语句,则可以使用RETURNING INTO子句来获取...

    整理:oracle pl/sql 入门+ 数组使用+游标+动态SQL

    - 数组操作:包括赋值、索引访问、遍历数组等操作,以及如何在PL/SQL块中使用数组。 3. 游标: - 游标的概念:游标允许我们按需逐行处理查询结果,而非一次性加载所有数据,这对于大数据量操作非常有用。 - 游标...

    Oracle-SQL.rar_oracle_oracle sql_sql

    在“Oracle-SQL.rar”这个压缩包中,包含了一份名为“Oracle SQL.ppt”的文件,这可能是一个PowerPoint演示文稿,用于详细讲解Oracle数据库的基础知识和SQL语言的使用。下面,我们将深入探讨一些Oracle SQL的基础...

    Oracle SQL(SQL for Oracle)

    在Oracle SQL中,有以下几个关键知识点: 1. **数据类型**:Oracle支持多种数据类型,包括数值型(如NUMBER)、字符串型(如VARCHAR2和CHAR)、日期/时间型(如DATE)、二进制大对象(BLOB)等。理解这些数据类型...

    SqlDbx连接oracle

    本篇将详细介绍如何使用SqlDbx连接到Oracle数据库,以及涉及的相关文件及其作用。 首先,连接Oracle数据库通常需要Oracle客户端软件,但这里提到的“Sqldbx连接oracle,不用安装client”,意味着SqlDbx可能通过一种...

    Oracle SQL Developer 使用说明

    本文档将深入讲解Oracle SQL Developer的使用方法,帮助用户充分利用这款工具提升工作效率。 1. **安装与启动** - 下载:首先,你需要从Oracle官网下载最新版本的SQL Developer安装包。 - 安装:按照安装向导的...

    oracle数据库导入到SQL server.docx

    本文将详细讲解如何使用Microsoft SQL Server Migration Assistant for Oracle.exe(微软数据库迁移工具)将Oracle数据库迁移到SQL Server。该工具可以帮助用户快速、安全地将Oracle数据库迁移到SQL Server中。 一...

Global site tag (gtag.js) - Google Analytics