oracle execute immediate】的更多相关文章

在之前的版本包括oracle mysql/percona server版本中,所有的动态SQL都需要通过prepare执行,如下: "; execute stmt; deallocate prepare stmt; 现在可以这样执行: EXECUTE IMMEDIATE 'SELECT 1'…
--execute和call的区别 -------------------------2014/01/14 EXEC is a sqlplus command that put its argument as an anonymous pl/sql block: 'EXEC xxx' is transformed to 'BEGIN xxx; END;'  So you can use it to call a procedure, or do any pl/sql  It is documen…
转自:http://www.cnblogs.com/huanghai223/archive/2011/06/29/2093660.html   EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTE I…
EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTE IMMEDIATE,因为它获的收益在包之上. -- 使用技巧 1. EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交如…
  包含using into用法. Declare        v_sid Integer:=20020101;        v_sql Varchar2(100);        v_result Varchar2(50);       begin   v_sql:='select count(1) from ST_STBPRP_B where 1=1 and STCD = :1';   dbms_output.put_line(v_sql);   Execute Immediate v_…
declare   aa         ,);   l_cnt      );   i_yr       ;   i_curCode  ) :='001';   i_vDate    date := sysdate;   i_valExpr  ) := 'haha';   i_branchNo ) := '00'; begin   l_cnt := 'Ns_Gls_AutoVal(132,:1,:2,:3,:4)';   execute immediate 'select ' || l_cnt…
有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCORE (CUR_MONTH IN NVARCHAR2) RETURN NCLOB IS PRAGMA AUTONOMOUS_TRANSACTION; TVALUE_SQL ); --查询目标值的sql(不能把类型声明为NVARCHAR2) RESULT_STR NCLOB; KPI_VALUE NVARCHAR2…
//导入oracledb模块 //基于版本@3.0.1 安装指令npm install oracledb //node访问oracleDB需要搭建访问环境,否则无法正常访问 //创建Oracle对象 let oracledb = null; //引用通用方法模块 let common = require("./commonHelper"); try{ oracledb = require('oracledb'); } catch (e) { console.log("orac…
环境: CentOS7.5.Oracle18c(LINUX.X64_180000_db_home.zip) 1. 安装必要的依赖包 [root@bogon ~]# yum install bc binutils compat-libcap compat-libstdc glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make…
#!/usr/bin/env bash                          #  # INTRO : The script for delete physical standby applied archivelog. #         Please set ur environment variables before use it. #         Please execute the script on physical standby site. # # USAGE…
本文转自:http://www.telerik.com/help/openaccess-orm/openaccess-tasks-oracle-execute-sp-result-set.html In this topic you will learn how to execute Oracle stored procedures that return SYS_REFCURSOR as out parameters. With the REF_CURSOR you can return a…
原文链接:http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2013/08/21/using-notepad-to-execute-oracle-sql.aspx Notepad++是一个很实用的文本编辑工具,用它来执行Oracle SQL也很有意思,虽然不太实用,或许在某些场合会有用吧. 在此复制原文只作记录,原文见如上链接. 原文如下: Toad for Oracle is the single most r…
今天,在玩 lsnrctl命令,是为了了解Oracle的一些配置. 当执行 show inbound_connect_timeout 命令之后,提示了错误信息: TNS-01190: The user is not authorized to execute the requested listener command 解决方案: 查看lsnrctl 进程是由哪个用户启动的,在我这里是grid 用户.之前使用的是oracle用户,所以导致以上的错误. ps -ef | grep lsnrctl…
简单来说 就是你一个存储过程当中 创建了一个表 table_a 然后要用insert into将其他的数据插入到这个table_a当中,但是因为你在创建过程的时候 table_a还不存在,过程就会显示有编译错误,因为table_a不存在必然导致过程无法执行,所以无法编译成功,而把insert into语句加如到 execute immediate之后 则oracle不会再去理会这个对象是否存在,因此可以成功编译和执行.…
alert报错 2019-01-12T10:10:11.499130+08:00Errors in file /u01/app/oracle/diag/rdbms/rac1/rac112/trace/rac112_j000_119621.trc:ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_7458"ORA-20001: Statistics Advisor: Invalid task…
在做实验的时候,编写关于"在存储过程中使用动态sql,建立一个统计表,并把统计结果,插入这个表中"的PL/sql语句在执行时出现权限不足的问题. 上网查询很多,看到了下面这篇博文(解决了我的问题) 两种解决办法 在编写存储过程时加上authid current_user 通过sys用户显式进行系统权限grant create table to hr(相应的用户名); 转载来的博文: create or replace procedure p_create_table Authid Cu…
oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题 学习了:http://blog.csdn.net/royzhang7/article/details/51172413 --解决 1.可以显示的赋给用户 create table权限 grant create table to user; 2.可以在存储过程上使用调用者权限. CREATE OR REPLACE PROCEDURE test_proc (a NUMBER, b VARCHAR…
问题描述: 在Linux + oracle 安装时,采有root 帐号登录x-windows 界面,然后 $su oracle 登录录安装Oracle 报以下错误: >>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.Some requirement checks failed. You must…
Oracle中动态SQL详解(EXECUTE IMMEDIATE) 2017年05月02日 18:35:48 悠悠倾我心 阅读数:744 标签: oracle动态sqloracle 更多 个人分类: 数据库   Oracle中动态SQL详解 1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有…
当在开发的应用场景中 数据库处理复杂业务逻辑里用到 SQL 语句拼接    可以用  execute immediate   来执行语 举个例子 insert into tb_temp_public(v1, v2, V3, V4, V5,V6,V7,V8,v9)  select '','','','','','','','','' from dual : tb_temp_public  里面的字段是动态生成的  后面对应的值也是动态生成的时候  这个时候执行语句  可以用: vsql   var…
直接上示例代码: create or replace procedure proc_test( --参数区域 ) is --变量区域 --sql脚本 v_sql ) :=''; --记录学生数量 v_num number; begin --执行区域 -- execute immediate用法1:立刻执行sql语句 v_sql := 'create or replace view myview as select id,name from student'; execute immediate…
create or replace procedure TEST_TABLE is l_table_name varchar2(50); query_stat varchar2(100); l_zyq t_djjcxx.zyq%type; l_jh varchar2(20); l_djjcxx t_djjcxx%rowtype; begin   l_jh :='7874'; select name into l_table_name from TESTA; DBMS_OUTPUT.put_lin…
execute immediate的语法如下: execute immediate 'sql'; execute immediate 'sql_select' into var_1, var_2; execute immediate 'sql' using [in|out|in out] bind_var_1, [in|out|in out] bind_var_2; execute immediate 'sql_select' into var_1, var_2 using [in|out|in…
给一般用户授 create any procedure.execture any procedure 这2个权限是很不安全的事. 因为授权后,通过一些处理,该用户可以取得dba权限,请一定注意. 下面是实验过程: SQL> create user hacker identified by bbk; User created. SQL> grant create session to hacker; Grant succeeded. SQL> grant create any proced…
CREATE OR REPLACE FUNCTION SEQ1 (v_bname in VARCHAR2) return NUMBER is v_bcount NUMBER; BEGIN execute immediate 'select count(*) from '||v_bname into v_bcount; dbms_output.put_line(v_bname||'------------------'||v_bcount); return(v_bcount+1); end SEQ…
概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误,重则导致数据库服务不可用. 另外,在非业务高峰期,某些看似风险不大的操作也可能会导致严重后果,比如不按管理流程修改表结构,如果这个表正好是Oracle GoldenGate复制组的一部分,修改了源端结构而没有通知OGG的相关人员,没有在目标端进行相同的操作,而DDL复制功能也没有打开的情况下,就会导…
1. 如何查看表的列名及类型 SQL> select column_name,data_type,data_length from all_tab_columns where owner='SCOTT' and table_name='EMP'; COLUMN_NAME DATA_TYPE DATA_LENGTH --------------- ---------- ----------- EMPNO ENAME JOB MGR HIREDATE DATE SAL COMM DEPTNO row…
1. 设置SQL*Plus提示符 SQL> set sqlprompt "_user'@'_connect_identifier>" SYS@orcl> 为了对所有的SQL*Plus会话自动设置sqlprompt,将上面的命令放置在ORACLE_HOME/sqlplus/admin目录中的glogin.sql文件内 2. 查看角色RESOURCE被授予的系统权限 SQL> select * from dba_sys_privs where grantee='RE…
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先搞清楚需求到底是什么,SQL本身是否合理,这些思考很可能会使优化工作事半功倍.而本文是假设SQL本身合理,从Oracle提供给我们的一些技术手段来简单介绍下Oracle数据库,该如何使用一些现有的技术来优化一个SQL执行的性能. 确定需要优化的SQL文本及当前SQL执行计划 确定SQL涉及的所有表及…
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束. POREIGN KEY (…