
Oracle技术
wonder4
资深云架构师,软件开发,资深系统分析师,人社行业专家
展开
-
判断type是否有记录的方法
-- added 2006-1-6 if not gv_tab_ac04.exists(v_aac001) then prm_appcode := pkg_a_code.def_err; prm_errormsg:= 参保人:||gv_tab_ac01(i).aac003||,编号:||gv_tab_ac01(i).aac400||没原创 2006-01-06 17:11:00 · 1505 阅读 · 0 评论 -
使用exception来查找重复的数据
今天建一个unique索引失败,找到了重复的值。1.首先用下面的sql语句创建create unique index IND_AB08_AAE140_AAE002_AAE003 on AB08 (AAE140, AAE002, AAE003, AAB001, AAC001, AAE143, AAA060, AAA070) tablespace ts_hmsimis_ind_a ;重复ORA-022原创 2006-01-08 19:25:00 · 1821 阅读 · 1 评论 -
ORA-01830问题的解决
ORA-01830问题的解决Oracle Tips — 作者 wonder @ 22:52 今天在 XXX中报错ora-01830把sql语句输出作了以下的实验,发现是时间多了一个.0后来的办法是先把这个时间转成to_char,再转成to_dateSQL> select to_date(2005-10-01 12:01:01.0,yyyy-mm-dd hh24:mi:原创 2006-01-16 21:13:00 · 31619 阅读 · 0 评论 -
10g CBO的一个问题
declare type rc is ref cursor; l_rc rc; l_dummy all_objects.object_name%type; l_start number default dbms_utility.get_time; y all_objects.object_name%type; begin for i in 1 ..转载 2006-03-14 17:28:00 · 1508 阅读 · 0 评论 -
oracle 10g R2 新特性 TDE
oracle 10g R2 新特性 TDEdocument.title="oracle 10g R2 新特性 TDE - "+document.title在Oracle的最新版本10g R2中,出现最及时的技术应该是透明数据加密技术(Transparent Data Encryption,TDE)。这一技术包含在Oracle高级安全选项里,每处理器的费用为10,000美元,只供企原创 2006-01-20 17:17:00 · 1651 阅读 · 0 评论 -
存储过程的执行权限
grant execute on PKG_A_TEST to user_a;原创 2006-03-20 15:17:00 · 2360 阅读 · 0 评论 -
如何处理Oracle中TEMP表空间满的问题?
如何处理Oracle中TEMP表空间满的问题? 选择自 hrb_qiuyb 的 Blog 正常来说,在完成Select语句、create ind原创 2006-02-16 10:39:00 · 1746 阅读 · 0 评论 -
9i控制台访问10g的一个有意思的bug
临时表空间在9i的控制台中显式不出来,在10g的控制台环境下可以正常显示。有空看看到底差在哪了。原创 2006-02-16 10:49:00 · 1266 阅读 · 0 评论 -
007中一道答案错误的题目
Incorrect. Your answer was: AThe correct answer(s): BWhich of the following functions are performed by ALTER TABLE?A.) All of the aboveB.) It can be used to add fieldsC.) It can be used to change name原创 2006-02-20 14:50:00 · 1292 阅读 · 0 评论 -
007中又一个答案出错的题目
Which of the following operators cannot be used with distinct?A.MAXB.COUNTC.all of the aboveD.MIN做了一个实验如下,发现这些都可以和distinct一起使用,所以这个题没有答案。SQL> select distinct count(empno) from emp;COUNT(原创 2006-02-20 16:25:00 · 1257 阅读 · 0 评论 -
LONG类型和VARCHAR2类型的差别
正好最近一直在用LONG类型和varchar2类型写存储过程,索性把这两个东东搞清楚。查了下文档,发现他们有这些区别:1.LONG数据类型与VARCHAR2数据类型很相像,在数据库中,LONG列的最大宽度是2147483648字节或者2G,数据库中不能检索超过32760的LONG数据到一个LONG变量,LONG中可以放入短的文档、字符数组、文本等。VARCAHR2的大小是1..32767字节,原创 2006-04-10 16:58:00 · 5667 阅读 · 0 评论 -
最近跟踪top sql的一些想法
1.top sql的列表中,优先注意的是每次执行磁盘读取数,这个数越大越不好,但也不能绝对而论,在看这个值的同时,要注意已处理的行数,如果行数比较大,则大的磁盘读取数是比较正常的。那么就是说我们要关心的是接近的记录读取数时的每次磁盘读取数。2.还要注意的是语法分析调用这个指标,当你的top sql中大量的都是语法分析调用为1的语句时,说明了这样两个问题:A.你的语句可能只执行了一次;B.你的语原创 2006-04-12 08:54:00 · 1555 阅读 · 0 评论 -
export时CONSISTENT=y的参数
当设置这个参数后,Oracle会以一个事务导出具有完整性约束的数据,这个参数为多表启用了一个读一致性的视图。当设置这个参数为N时,Oracle会以多个事务完成,这样可能会造成完整性约束的问题。这个带来的问题是事务可能会过大,所以使用这个参数时还要注意。原创 2006-04-16 18:32:00 · 2089 阅读 · 0 评论 -
存储过程调用对象权限语句 AUTHID
存储过程调用对象权限语句 文本描述:AUTHID { CURRENT_USER | DEFINER }调用权限允许你指定存储过程执行的权限是在所有者自己的用户还是在CURRENT_USER中执行。AUTHID CURRENT_USERSpecify CURRENT_USER to indicate that the procedure executes with the pri原创 2006-08-28 13:25:00 · 1557 阅读 · 0 评论 -
SQL语句中CASE函数的用法
SELECT 0 flag, aa, SUM(nvl(a201, 0)) a201, a191, a192, (CASE WHEN aa151 = 1 THEN (SELECT a03 FROM a WHERE a01 = b4.a200) WHEN aa151 = 2 THE原创 2006-04-24 16:35:00 · 1997 阅读 · 0 评论 -
ORA-01830问题的解决
Oracle Tips — 作者 wonder @ 22:52 今天在 DRM中报错ora-01830把sql语句输出作了以下的实验,发现是时间多了一个.0后来的办法是先把这个时间转成to_char,再转成to_dateSQL> select to_date(2005-10-01 12:01:01.0,yyyy-mm-dd hh24:mi:ss) from dual;sel原创 2006-04-28 14:15:00 · 37459 阅读 · 3 评论 -
表空间分析结果
空间管理预警和警告: 测试详细信息根据已评估的表空间, 执行下列一个或多个测试以检测空间管理问题。段过分扩展 Oracle 允许一个段有多个区, 在需要额外空间时, Oracle Server 会自动分配这些区。尽管 DML 操作的性能基本上与段中的区数无关, 但在字典管理的表空间中对对象进行的某些 DDL 操作 (如删除和截断段) 对区数很敏感。对这类操作的性能检测表明, 区数保持在原创 2006-04-28 17:41:00 · 1882 阅读 · 0 评论 -
避免动态分配extent的办法
1.显示所有剩余空间小于10%的表 这里要注意的是,blocks和empty_blocks是只有通过dbms_stats.gather_table_stat收集后才能得到最准确的值。SQL> SELECT owner, table_name, blocks, empty_blocks 2 FROM dba_tables 3 WHERE empty_blocks/(bloc原创 2006-05-03 10:06:00 · 1364 阅读 · 0 评论 -
优化PL/SQL过程调用,使用NOCOPY提示
使用NOCOPY提示可以将过程的IN/IN OUT类型的参数从by value改为by referenceTuning PL/SQL Procedure Calls with the NOCOPY Compiler HintBy default, OUT and IN OUT parameters are passed by value. The values of any IN OUT原创 2006-05-03 11:26:00 · 3419 阅读 · 0 评论 -
检查行链接和行迁移的方法
1.执行utlchain.sql脚本SQL> CREATE TABLE chained_rows ( 2 owner_name VARCHAR2(30), 3 table_name VARCHAR2(30), 4 cluster_name VARCHAR2(30), 5 partition_name原创 2006-05-03 13:42:00 · 1592 阅读 · 0 评论 -
检查锁情况的三种方法
1.The v$locked_object View The columns of this view are: •XIDUSN: Rollback segment number •OBJECT_ID: ID of the object being modified •SESSION_ID: ID of the session locking the object •原创 2006-05-03 16:41:00 · 2744 阅读 · 0 评论 -
nls_date_format参数
一个同事问我,为什么有的sql date类型的字段可以直接用字符串查询?如:select ename from emp where edate=2006-05-02;我试了试,需要修改nls_date_format=YYYY-MM-DD这样查询就好使了。为了使每次自动登录pl/sql developer都好用,又修改了login.sql文件,增加了alter session set原创 2006-05-02 11:15:00 · 1703 阅读 · 0 评论 -
ORA-01461: can bind a LONG value only for insert into a LONG column
Problem symptoms Using PRO*C or OCI. Database character set is set a multibyte character set. For example UTF8, AL32UTF8, JA16SJIS or JA16EUC. Trying to insert a VARCHAR2 into a col原创 2006-05-08 11:05:00 · 4181 阅读 · 0 评论 -
Oracle XDB切换端口
SQL>call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(), /xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text(), 8008)) -- 换成别的端口SQL> commit;原创 2006-05-08 13:34:00 · 1338 阅读 · 0 评论 -
在Oracle中使用java对象
1.写一个java对象,保存在c:/Hello.java2.loadjava -user scott/tiger@223 Hello.java ,将Hello.java加入到数据库中,如果加入的是源码,则可以从javasource中看到,如果加载的是class,从javasource看不到3.查询加载的对象。SQL> select * from user_java_classes wh原创 2006-09-16 17:24:00 · 3251 阅读 · 0 评论 -
ORA-01261: Parameter db_create_file_dest destination string cannot be
AIX机器掉电后,10g数据库启动出错报错误如下ORA-01261: Parameter db_create_file_dest destination string cannot be在 使用init.ora文件启动后,发现找不到控制文件,经过检查控制文件所在的路径,发现/oradata都没有被mount上,至此找到原因,将/oradata mount上就可以了。原创 2006-09-23 12:56:00 · 6672 阅读 · 0 评论 -
QUERY_REWRITE_ INTEGRITY的设置
QUERY_REWRITE_ INTEGRITY的设置。QUERY_REWRITE_INTEGRITY参数有三个取值: STALE_TOLERATED表示即使细目表中的数据已经发生了变化,也仍然使用物化视图。 TRUSTED 表示物化视图未失效时才使用该视图。但是,查询改写可以使用信任关系,如那些由维度对象或尚未生效的约束所声明的关系。 ENFORCED(缺省)表示当物化视图保证能给出与使用原创 2006-05-14 13:15:00 · 2808 阅读 · 0 评论 -
librarycache和数据字典命中率
1.library cache:查看reloads,pins在v$librarycache中,应该小于0.012.data dictionary:查看gethits,gets在v$rowcache原创 2006-05-14 12:51:00 · 1647 阅读 · 0 评论 -
CURSOR_SPACE_FOR_TIME
cursor_space_for_time: 说明: 在一个游标引用共享 SQL 区时, 确定将 SQL 区保留在共享池中还是从中按过期作废处理。 值范围: TRUE | FALSE 默认值: FALSE (过期作废) 如果设置为true引起共享SQL区被pinned在shared pool,这禁用LRU机制。常为0在v$librarycache.reloads字段提供了参考。原创 2006-05-14 12:49:00 · 2007 阅读 · 0 评论 -
Oracle中获取随机顺序
select * from table order by dbms_random.value; select * from table order by sys_guid();原创 2006-10-16 11:30:00 · 1158 阅读 · 0 评论 -
Bulk绑定是如何提高性能的。有空再翻译吧。(from oracle)
How Do Bulk Binds Improve Performance?The assigning of values to PL/SQL variables in SQL statements is called binding. PL/SQL binding operations fall into three categories: in-bind When a P转载 2006-06-02 16:43:00 · 1941 阅读 · 0 评论 -
Oracle分区表显示允许分区关键字修改(ORA-14402)
ORA-14402: Updating partition key column would cause a partition change 8i以上,通过显式的启用行移动来解决这个问题,具体的办法是alter table AAA enable row movement;原创 2006-10-18 13:47:00 · 4128 阅读 · 1 评论 -
Oracle10g通过suse-10校验
前几天装了一个suse10,昨天想在上面安装Oracle10g 10.2.0.1,结果提示我不能通过检验,一看,只有suse-9可以通过,后来想了想,应该是可以改的,随即找了一下。在install/oraparameter.ini中找到了到关于版本的描述,将里面的SuSE-9改成了SuSE-10,安装检测就通过了。但是在安装过程中会有一个窗口提示你只能装在SuSE-9上,不用理会,通过即可。原创 2006-06-05 13:05:00 · 1488 阅读 · 0 评论 -
PRAGMA AUTONOMOUS_TRANSACTION自治事务
PRAGMA AUTONOMOUS_TRANSACTION当前的存储过程作为已有事务的子事务运行,子事务的commit,rollback操作不影响父事务的状态可以用于(1)匿名块(2)触发器(3)存储过程 如下:--------------------------------------------------------------------procedure addR原创 2006-06-10 17:47:00 · 3438 阅读 · 1 评论 -
未能收到OCP证书的处理流程
未能收到证书的处理流程 (转自itpub)转者:fulfillment@prometric.com地址变为fulfillment@thomson.com ,要是搞不清楚就都发试试。转者:下面的内容是04年的。在长时间等待之后,如果还没有能收到证书,不用着急,因为只要通过了考试,得到证书是早晚的事。但由于投递,地址错误等原因,可能需要重新打印邮寄,那么可以使用以下流程来处理。1.到网上查询确认每一门转载 2006-06-18 15:02:00 · 2693 阅读 · 0 评论 -
存储过程源码涉及到的数据字典
Name Significance USER_SOURCE Includes the lines of source code for all the programs you own原创 2006-10-25 15:52:00 · 1530 阅读 · 0 评论 -
ORA-06553: PLS-213: STANDARD 包不可访问
ORA-06553: PLS-213: STANDARD 包不可访问 先做这两步骤首先执行alter package standard compile;然后再执行alter package dbms_standard compile;如果不行执行catalog.sql和catproc.sql重建数据字典。原创 2006-06-06 12:49:00 · 3591 阅读 · 0 评论 -
db file sequential read
1.获取最大的磁盘读的SQL语句SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS, SORTS, COMMAND_TYPE, DISK_READS, sql_text FROM v$sqlarea O原创 2006-06-10 13:36:00 · 1692 阅读 · 0 评论 -
在SUSE10上启动安装Universall installer Oracle界面乱码的解决办法
$LANG=China_Chinese.ZHS16GBK ./runInstaller ,可以指定语言运行runInstaller原创 2006-10-28 18:25:00 · 3067 阅读 · 0 评论 -
今天解决的一个关于spfile的小问题
一个服务器启动不了,经过检查,是启动时的initorcl.ora文件找不到了,随后,查找整个系统目录,在其他位置找到了一个init.ora文件,>startup pfile=init.ora。数据库成功启动,woho,还算幸运。把这个文件放到database/下面,改名为initorcl.ora。使用pfile指定启动,启动后,> create spfile to pfile;查看show原创 2006-11-03 16:17:00 · 1460 阅读 · 0 评论