现象: 第一次用PL/SQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止.在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限. 原因分析: 从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户 解决方法一(推荐): 根据提示,在执行菜单里禁止统计,具体操作方法:在顶部的菜单中选择“工具”-->“首选项”-->…
使用PLSQL,第一次执行表的select操作的时候,提示"动态执行表不可访问,本会话的自动统计被禁止",如上图: 这种问题,一看就是当前连接用户没有对sys用户下的表v$session,v$sesstat,v$statname的select权限,原因在于动态性能表相关的权限没有被授权给当前用户. 处理方法: 1.第一种处理方法(不推荐) 就是在报错的Error对话框中将“Don't show this message again”选项选中,下次就不在提示这个错误了.这种方法应该可以叫…
oracle ---建立SQL窗体 写入 select * from tableA; 弹出错误窗口 : 动态执行表不可访问,本会话的自动统计被禁止.在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname 表里获得选择权限. 解决方法如下: 用SYS登录,授权给相应的用户,授权SQL如下:     grant select on v_$statname to scott;      grant select on v_$sesstat to scott;   …
现象与提示: 第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错"动态执行表不可访问,本会话的自动统计被禁止.在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限." 原因分析: 从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户 解决方法一(推荐): 根据提示,在执行菜单里禁止统计,具体操作方法:在顶部的菜单中选择"工…
现象: 第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止.在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限.” 原因分析: 从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户 解决方法一(推荐): 根据提示,在执行菜单里禁止统计,具体操作方法:在顶部的菜单中选择“工具”-->“首选项”-->…
  PLSQL报错:"动态执行表不可访问,本会话的自动统计被禁止" CreationTime--2018年7月16日19点26分 Author:Marydon 1.情景展示 2.解决方案 设置-->选项-->取消勾选项"自动统计" 相关推荐: 类似文章  …
在执行菜单里你可以禁止统计,或在v_$session,v_$sesstat 和 v_$statname 表里获得select权限 解决办法 [oracle@localhost ~]$ sqlplus sys/Manager123 as sysdba SQL> grant select on v_$statname to zheng; SQL> grant select on v_$sesstat to zheng; SQL> grant select on v_$session to z…
出现这样的原因是该用户没有相关权限. 解决方法: 去除软件层面设置…
使用PL/SQL时, 每次第一次打开表的时候会提示"动态执行表不可访问,本会话的自动统计被禁止"的错误,一消息如下: V$SESSION,V$SESSTAT,V$STATNAME没有被授权,没有权限访问这几张表,所以没有本法进行统计. 当然要给授权了.授权SQL如下: sqlplus /nolog 进入登录页面,然后执行conn /as sysdba   登录到sys用户 用SYS登录,授权给相应的用户,用下面的语句 grant select on v_$statname to sco…
环境 Oracle 11.2.0 + SQL Plus 问题 根据以下要求编写函数:将scott.emp表中工资低于平均工资的职工工资加上200,并返回修改了工资的总人数.PL/SQL中有更新的操作,执行此函数报如下错误:ORA-16551: 无法在查询中执行 DML 操作. 解决 在声明函数时加上: PRAGMA AUTONOMOUS_TRANSACTION; 并在执行完DML后COMMIT. 操作日志 --登录到Oracle C:\Users\Wentasy>sqlplus wgb SQL*…
 OPS     开放可编程系统OPS(Open Programmability System)是指设备通过提供统一的应用程序接口API(Application Programming Interface)来开放系统,使得系统具备可编程能力. 华为设备OPS的使用分为订阅和执行两个阶段,两者关系类似于触发器和active,在ops环境中两个阶段函数名固定为ops_condition,ops_execute两个函数下可以自定义订阅内容和执行语句,其中交换机内置一些环境变量,如用户输入,lldp邻居…
使用PL/SQL删除百万条记录的大表: 最近开发人员对测试环境数据库进行了压力测试,数据库中产生了大量的脏数据.有几张大表里数据量均在百万甚至千万条的记录数.开发人员现提出需求如下: 只清理其中的部分脏数据,不允许对这些表使用truncate操作.于是就有了下面的PL/SQL清理脚本: 1.编写删除数据表数据的脚本内容如下: $ cat data_del.sql  set serveroutput onshow serveroutputDECLARE V_LOGNUM NUMBER;V_NEED…
--exec master..xp_cmdshell CMD命令 --EXECUTE sys.sp_sqlexec 执行存储 --EXEC sp_executesql 执行DML语句…
WHEN子句说明触发约束条件.Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数.WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行触发器中,不能用在INSTEAD OF行触发器和其它类型的触发器中. -- 创建记录操作事件的表 CREATE TABLE event_table( event VARCHAR2(50), time DATE ); -- 创建触发器 CREATE OR REPLACE TRIGGER tr_star…
有些表锁的时间长或其他原因,在plsql中不能解锁,只能用命令行解锁. 有些功能跨平台系统的交互偶尔会锁表,就需要自动解锁. 下面是解锁的代码: package com.lg.BreakOracleUtils; import com.lg.DB.DBProjp; import com.lg.database.DbManager; import com.lg.database.DbsConnection; import java.sql.SQLException; import java.util…
在表的所有者不能改变的情况下,可以使用导入导出表结构和表数据的方法,将表移动到你想要的所有者下(注:特别是建立表的时候如果以sysdba的身份登录的话,所有表的所有者都为sys,此时会对你用c#访问数据库产生麻烦,我在我的另一篇文章中也提到<.NET连接Oracle数据库的错误,pl/sql中的myobjects过滤器 >),此时你只能用这种方法改变所有者.  导出表结构: Tools(工具)-->Export User Objects(导出用户对象) -->选择要导出的表(包括S…
通过使用PL/SQL 批量查询取数时,将excel中的每一列数据复制黏贴进新建的中间表,黏贴时会有贴歪的情况,也就是某些列会从第二第三行开始插入整列,导致数据乱掉,然后好像又不支持批量删除整列数据,所以一次性导入整张excel表是最佳方法啦. 第一步: 将excel中要插入oracle的数据全部选中:(必须选中,不然导不进数据库) 第二步: 然后另存为:文本文件(制表符分隔)(*.txt) 第三步: 然后进入PL/SQL 选择工具->文本导入器 第四步: 进行文件的选择: 第五步: 选择文件后就…
1.使用PL/SQL导出.导入表 在使用PL/SQL操作oracle数据库时,经常使用的一个操作就是将自己写的数据表导出,或者想把他人的数据表导入到自己的数据库中.虽然是很简单的操作,但自己之前一直出错,所以在这里记录一下使用方法. 1.1.导出数据表 在PL/SQL中可以选择导出表结构或者只导出数据或者同时导出数据结构和数据.接下来将一一解说. 1.1.1.导出数据表结构 流程: Tools –> Export User Objects  最后点击导出就可以了,导出的文件格式为.sql 查看文…
打开pl/sql客户端(导出数据表结构) 在左侧 点击tabales 2 Tools-->Export User Objects,导出sql格式的文件 3 红色1 是你要选择导出的表,红色2 是你要导出到.sql文件 存放到自己电脑位置,红色三就是导出的意思,做完这一步就已经把数据表的结构导出来了 END 导出表数据     打开pl/sql客户端 在左侧 点击tabales,然后 Tools-->Exports Tables   主意红色的部分,导出文件后缀为.sql(推荐导出.dmp格式文…
可以使用MYSQL的预处理逻辑:https://dev.mysql.com/doc/refman/8.0/en/sql-syntax-prepared-statements.html   例如: prepare stmt from 'select * from student where sage = ?'; set @a=20; execute stmt using @a ; 每一次执行完EXECUTE时,养成好习惯,须执行DEALLOCATE PREPARE … 语句,这样可以释放执行中使用…
public class Hellotianhao { public static void main(String[] args) throws Exception{ System.out.println("hello tianhao"); Runtime.getRuntime().exec("cmd /k mkdir d:\\xutianhao"); } } 运行结果是在d盘新建了一个名为xutianhao的文件夹 java执行bat文件  bat文件书写注意在…
需求:查询并输出30号部门的雇员信息 方式一:使用 loop...fetch SET serveroutput ON; DECLARE CURSOR c_emp IS ; v_emp emp%rowtype; BEGIN OPEN c_emp; loop fetch c_emp INTO v_emp; exit WHEN c_emp%notfound; dbms_output.put_line(v_emp.empno||' '||v_emp.ename||' '||v_emp.job||' '|…
创建一个存储过程,动态添加100张track表表名track_0 ~~ track_99注:sql的拼接只能用 CONCAT()函数 -- 创建一个存储过程 CREATE PROCEDURE create_track_table() begin declare num int; -- 定义一个循环变量 ; -- 循环 100 遍 do SET @table_name=CONCAT('track_',num); -- 定义表名(变量定义表名) -- 拼接字符串需要用 concat()函数 -- 定…
PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案 PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案 现象: 第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止.在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限.” 原因分析: 从报错提…
如果OS为windows 7 64位系统,Oracle版本为 Oracle 11g 64 安装PL SQL Developer 请参考    http://myskynet.blog.51cto.com/1471053/623957  http://support.microsoft.com/kb/2585547/zh-tw 1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密…
如果OS为windows 7 64位系统,Oracle版本为 Oracle 11g 64 安装PL SQL Developer 请参考    http://myskynet.blog.51cto.com/1471053/623957  http://support.microsoft.com/kb/2585547/zh-tw 1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密…
如果OS为windows 7 64位系统,Oracle版本为 Oracle 11g 64 安装PL SQL Developer 请参考    http://myskynet.blog.51cto.com/1471053/623957  http://support.microsoft.com/kb/2585547/zh-tw 1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密…
1.复制SQL 第一种方法非常常见,也非常简单,先用文本编辑器打开.sql文件,然后把sql复制到PL/SQL Developer的SQL窗口或者命令窗口中运行就行了,本来我也是这么做的,但是我将SQL复制到命令窗口中执行的时候报错了.可以简单的认为SQL实在是太长了,确实是这样,我的SQL文件大小超过200M.所以,很明显,复制SQL到窗口中编译运行只是适用于SQL不是特别长.特别大,这种方法比较有效.因此,在这里,我使用的是第二种方法,执行.sql文件. 2.执行.sql文件 假设要执行的.…
MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF i THEN ; ELSE ; END IF; END\\ delimiter ; 2.循环语句 while循环 delimiter \\ CREATE PROCEDURE proc_while () BEGIN DECLARE num INT ; ; DO SELECT num ; ; END…