在存储过程中,执行了create table、update table、insert into table

但是在使用pl/sql的存储过程调试的时候,一有问题就直接卡住(标识:执行中.....)

后来为了找了一下,原因有二:

1、使用execute immediate执行create table,需要对执行的用户进行授权执行,命令如下:

grant create table to  cusername;  

2、使用execute immediate执行insert/update时,建议表命名规范一下,不要使用oracle的关键词(直接去度)去命名;

2.1、最好先在“SQL窗口”执行一下,看看是否OK;如果可以,那就可能是命名问题了。(仅供参考)

CREATE OR REPLACE PROCEDURE PROC_A
-- auther:learcher as
dobackday date; --当前时间
dobackdaystr varchar2(20 CHAR); --当前时间字符串(yyyy-MM-dd hh24:mi:ss)
first_day_by_month_str varchar2(20 CHAR); --月的第一天,执行创建表时间(yyyy-MM-dd)
back_table_name varchar2(32 CHAR); --备份的表名称 vs_sql varchar2(2048); -- 执行数据备份的sql begin
dobackday := sysdate - 1; --备份昨天
dobackdaystr := to_char(dobackday, 'yyyy-MM-dd'); --当前时间字符串(yyyy-MM-dd hh24:mi:ss)
first_day_by_month_str := to_char(trunc(dobackday, 'month'), 'yyyy-MM-dd'); --备份时间所在月的第一天
back_table_name := 'table_a' || to_char(trunc(dobackday, 'month'), 'yyyyMM'); vs_sql := ''; begin
-- 当备份执行时间为月的第一天,则进行月表创建
-- 手动备份表语句
-- create table table_a201712 as select s.* from table_a s where 1=2
--if first_day_by_month_str=dobackdaystr then
if 1 = 1 then
-- 授权grant create table to cusername;
vs_sql := ' create table ' || back_table_name ||
' as select s.* from table_a s where 1=2 ';
execute immediate vs_sql;
end if; -- 使用占位符,如果多个可以直接加
-- execute immediate 'update table_a set CODE=:1,USER_NAME=:2' using 'code_id_001','user_name_str';
execute immediate 'update table_a set CODE=:1' using 'code_id_001';
commit; vs_sql := ' insert into ' || back_table_name || ' (
CODE, USER_NAME
)
select
CODE, USER_NAME
from table_a where 1=1 '; execute immediate vs_sql;
commit;
end; end PROC_A;

pl/sql 存储过程执行execute immediate 卡住的更多相关文章

  1. pl sql 存储过程 执行sql 锁死状态

    背景 这是在一个不知如何表达的项目中,我在这个项目中做的就是不知如何表达的事情.只是想着技术,到是通过这个项目把存储过程基本能用的都用了,oracle开发的技术我感觉基本都全活了.别人没搞定的我搞定了 ...

  2. 使用oracle 的 PL/Sql 定时执行一个存储过程

    CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...

  3. PL/SQL存储过程

    一.概述 过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储于数据库中. 并通过输入.输出和输入输出参数与其调用者交换信息.唯一区别是函数总向调用者返回数据. 二.存储过程详解 ...

  4. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  5. Oracle中PL/SQL的执行部分和各种流程控制

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

  6. PL/SQL — 存储过程

    存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库.是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出.一个存储过程通常包含定于部分,执行部分,Exc ...

  7. PL/SQL 存储过程

    PL/SQL复习九 存储过程 无参数的存储过程: create or replace procedure out_time is begin dbms_output.put_line(to_char( ...

  8. PL/SQL Developer执行.sql文件的几种方法

    1.复制SQL 第一种方法非常常见,也非常简单,先用文本编辑器打开.sql文件,然后把sql复制到PL/SQL Developer的SQL窗口或者命令窗口中运行就行了,本来我也是这么做的,但是我将SQ ...

  9. PL/Sql快速执行 insert语句的.sql文件

    当全是 insert语句的.sql文件太大时(insert 语句条数太大),直接打开执行sql文件,pl/sql会卡死. 这是可以用pl/sql的命令窗口来执行.sql文件,操作步骤如下: 1.新建命 ...

随机推荐

  1. Oracle下lag和lead分析函数

    [转自] http://blog.csdn.net/thinkscape/article/details/8290894 Lead和Lag分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag) ...

  2. 【总结】sqlmap-tamper编写小结

    目的:修改sqlmap中的tamper脚本来绕过代码对特定参数的过滤和转义 环境:win10.phpstudy2016.sqli-labs-master平台 工具:sqlmap.burpsuite 地 ...

  3. linux对于zombie的处理

    @(Linux基础)[僵尸进程处理] 今天在服务器上推送项目的时候,突然发现很卡.就用top查看了一下,果然此事不简单啊. top - 10:39:16 up 20 days, 23:11, 2 us ...

  4. 踩坑--springboot打war包

    springboot需要jdk1.8+tomcat8.0 第一步:从IDEA中通过maven install将项目打成war包 第二步:将war包放在tomcat的webApp目录下,启动tomcat ...

  5. 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件

    关于log4j.properties文件在web项目中放的位置,找过很多,最后实践结果是: 一.web项目 二.放在src的目录里面,然后项目生成后会自动在\WEB-INF\classes文件里有份l ...

  6. js event事件绑定的方法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. 深入理解JavaScript系列(14):作用域链(Scope Chain)

    前言 在第12章关于变量对象的描述中,我们已经知道一个执行上下文 的数据(变量.函数声明和函数的形参)作为属性存储在变量对象中. 同时我们也知道变量对象在每次进入上下文时创建,并填入初始值,值的更新出 ...

  8. [MySQL] - MySQL连接字符串总结

    来源:http://blog.sina.com.cn/s/blog_5f0dab1e0100e4pv.html?retcode=0 一.MySQL Connector/ODBC 2.50 (MyODB ...

  9. Investigating issues with Unmanaged Memory. First steps. (转载)

    原文:http://kate-butenko.blogspot.tw/2012/07/investigating-issues-with-unmanaged.html I want to write ...

  10. 移动端下滑刷新插件(jQuery插件)

    由于在工作不能独自开发,而且为了给他们方便,自己写过不少的插件,不过今天刚好空闲,发出刚好完成的,移动端的下滑到底刷新插件.我不是很喜欢写插件给别人用,因为用起来自然是简单的,没什么难度,所以一起分享 ...