Scripts: format Library Cache Lock/pin wait event p3 value

SQL> exec lbc_p3(1571747577004035);
———————————————
……………………..Library cache P3 value: 1571747577004035
………………….Library cache P3 value HEX: 5957f00010003
…………………………………Object id: 365951
…………………………………Namespace: 1
……………………………….RequestMode: exclusive mode

PLS-00382: expression is of wrong type When using “execute immediate” dynamic SQL statement

今天测式部门同事遇到的一个问题记录一下,开发库运行正常,同样的复制到测试库执行应用报错,
LINE/COL ERROR
——– —————————————————————–
59/5 PL/SQL: Statement ignored
59/23 PLS-00382: expression is of wrong type

,

Script:List all SQL in the library cache cursor referencing a given table .(列出指定表上所有相关SQL)

PROMPT List all SQL in the library cache cursor referen […]

Script: Display the sessions distribution and top 50 idle sessions

This script displays the top 50 longest idle times and list distribution of sessions on the instance..

SQL Test Case Builder generate test case automatically(自动生成SQL所需测试数据)

Why SQL Test Case Builder? For most SQL problems, the s […]

Dynamic SQL Supports Statements Length Characters Limit (execute immediate sql长度限制)

有时需要在plsql 写一些动态sql,用execute immediate 或dbms_sql 调 用,但是execute immediate 后动态sql 文本的长度限制是多少呢?

Troubleshooting wait event: ‘latch: row cache objects’

This latch comes into play when user processes are attempting to access or update the cached data dictionary values.

,

SQL hint mean force? More about parallel(二)(不并行的场景)

sql中如果使用了parallel hint 或是force parallel query 想并行查询的特性,如果那样做了就一定能保证 query optimizer选择并行的执行计划么?知道那样做实际上产生什么样的影响么?

,

Script: Who’s using a database link?(找出谁在使用dblink)

Every once in awhile it is useful to find out which ses […]

,

Script: TOP logical read within a specific time period(指定时间逻辑读最多的对象)

根据AWR的收集信息查询出指定时间段内的逻辑读最高的几个对象,script

Script: Oracle Table/Tablespace/DB Growth Prediction(预测表/表空间/库增长)

Some scripts for showing the growth of tablespaces over time periods. to show the starting tablespace size and the end tablespace size, computing the tablespace growth for the time period.

,

table function (函数返回结果集)

经常见到select * from table(function(args))的查询方法,对pl/sql 强大功能赞不绝口,比如PIPELINED 管道函数
例子

Script: 通过AWR信息查询db 中segments 的增长信息

awr 中有很多wr开头的表收集的数据非常有用,通过dba_hist开头的视图可以很直观的查看,也可以手动查询一些详细或定制自己所要的信息

Script: oracle 删除用户(schema)下的所有对象

有时需要清除schema里的所有对象,但又没有dba权限,不可以drop user xxx cascade; re-create user;可以写个plsql,循环删除所有对象,注意有些对象存在依赖关系,如外键、index 和table..,这里建个procedure,方便在开发库一堆有schema中运行。

Script: AWR snap sessions,load profile, SCN or Transactions per second

自定义生成一些报表,曲线数据从AWR 数据表。

Script: 查看datafile 的HWM,估算resize 最小size

数据文件如果有2g,先create一个大表占了1G,后来建了个几M小表,再把大表drop 掉加purge选项,向把数据文件resize到100M,往往会失败,在磁盘紧张的情况下,想知道数据文件最小值是多少?就要计算datafile HWM

oracle 用UTL_SMTP 发预警邮件

对于每个数据库不同级别的错误可以做不同的处理,如短信、邮件等

,

Script: Procedure 启用/禁用表上全部外键

一个充满外键的表中DML,因为验证的原因会浪费很多额外时间,如果在确保数据的合法性的前提下先禁用外键约束,操作完后再启用,可以提高你的DML速度,下面一个procedure启用/禁用表上的全部外键。

Script: tom’s printtab code你值得拥有

–Tom Kyte’s printtab code
比如一个查询的列很多,在命令行窗口下看的很乱,就可以用tom的printtab转换成列打印出来

Script: oracle procedure error 生成txt日志文件

前天有网友问题这个问题,今天测试一把,需求应该是如果producre存储过程运行出错,可以写错误日志到OS的文本文件,这样系统管理员就可以看到,无需分配数据库权限.