Archive for 十月, 2008

倒霉的户籍制度

星期五, 十月 24th, 2008

我的一代身份证过期了,一直想办个二代身份证。 可是秦皇岛那边的“龟腚”是办身份证必须是本人过去。 从杭州到秦皇岛貌似一个很大的工程,来回车费也不便宜,最关键的得请假回去。 所以就一直也没抽出时间去办身份证。 算算,也当了一年多的黑户了。 来杭州也一年多了,可以将户口迁到杭州。 那么我就可以不用回秦皇岛了,直接在杭州办身份证了。 打听了一下,需要回户口所在地开户籍证明, 另外还需要本人的档案也迁到杭州(当然这是我前两天才知道的)。 这样开户籍证明就成了头等大事。 先打了个电话给派出所,他们说带着户口本就可以去办。 第一次,小明带着我的户口本去派出所给我办, 人家说必须上亲属, 死活不给开户籍证明。 虽然小明戴着大金链子,可是那人一点面子都不给。  小明带着办户籍证明的失败去北京工作了…… 第二次,赵明假装我表弟去的。 他的准备工作很充分,打了一顿电话。 就连迁户口要给东大多少保管费都打听清楚了。 真细心。 我心中很激动,想想就快有身份证了。 后来他的一个电话打碎了我的梦, 他说人家必须要直系亲属才可以,表弟没用。 又tmd失败了。 你别说,赵明还真是聪明。 他马上就想到了找个胆大的不怕死的人来冒名顶替。 在他看来,这样的牛人非小田莫属。 一个电话,小田就去了。 假装是我,顺利的把户籍证明开到手了。 当我亲手拿到了兄弟们用命换来的户籍证明的时候, 我差点感动的哭了。 于是就拿着热乎的户籍证明去办迁户口的时候, 他们说我的档案不在杭州,办不了。 想办的话先把档案迁过来,明年4月份在办吧。 nnd,我们白忙活了。 虽然白忙活了一阵子,不过还是很有收获的。 那就是,如果以后我想杀人放火抢银行一定得叫上那哥三儿。 两个明,在加上个田,都是不要命的主。

递归调用的视图

星期五, 十月 24th, 2008

今天创建了三个递归调用的视图,他们互相调用,结果变成了死循环。SQL> create force view sunwg_02 as select * from sunwg_01; 警告: 创建的视图带有编译错误。 SQL> create force view sunwg_03 as select * from sunwg_02; 警告: 创建的视图带有编译错误。 SQL> create force view sunwg_01 as select * from sunwg_03; 警告: 创建的视图带有编译错误。 这样就创建了三个互相调用的视图 调用关系如下: sunwg_02 => sunwg_03 => sunwg_01 => sunwg_02 接下来执行 SQL> desc sunwg_01 系统hang住了,查询v$sql可以看到正在执行的sql, 发现几个和视图相关的sql一直在执行,如果你不停止那个desc的session, 这些sql会一直递归的执行下去,变成死循环。 主要的就是下面这几个SQL: select text from view$ WHERE rowid=:1 select property, v.textlength, decode(bitand(property,1), 0, 0, t.oidtextlength), decode(bitand(property,1), 0, 0, t.typetextlength), decode(bitand(property,134217728), 0, 0, t.undertextlength) FROM view$ v, typed_view$ t WHERE v.obj#=:1 and v.obj#=t.obj#(+) select ...

ora-22992

星期五, 十月 24th, 2008

通过DB LINK直接select访问远端的LOG类型的字段会报ORA-22992。sql>select * from scott.lob_table@dl_scott; ERROR: ORA-22992: cannot use LOB locators selected from remote tables no rows selected test>oerr ora 22992 22992, 00000, "cannot use LOB locators selected from remote tables" // *Cause: A remote LOB column cannot be referenced. // *Action: Remove references to LOBs in remote tables 同样的视图也是无法创建的。 sql>create view lob_table as select * from scott.lob_table@dl_scott; create view ...

11g新特性——系统分区

星期五, 十月 24th, 2008

11g中关于分区还增加了一个新的特性系统分区。 了解了之后发现这个东西基本上没有任何用处。 不过也可以看看这个无聊的特性。这个特性是可以对常规分区方式不适用的大表进行系统分区, 将大表分成多个小表,并且由用户自己指定记录的分区分配方式。 (实际上由于存在hash分区方式,应该不会出现上面的情况)。 etl@DATAMART>create table sunwg 2 (id number, 3 name varchar2(100)) 4 partition by system 5 (partition p1, 6 partition p2); Table created. 这样就创建了一个系统分区的分区表。 etl@DATAMART>select partition_name,HIGH_VALUE from user_tab_partitions where table_name='SUNWG'; PARTITION_NAME HIGH_VALUE ------------------------------ -------------------------------------------------------------------------------- P1 P2 这个两个分区都是没有分区上限的。 etl@DATAMART>insert into sunwg values(1,'tom'); insert into sunwg values(1,'tom') * ERROR at line 1: ORA-14701: partition-extended name or bind variable must be used for DMLs on tables partitioned by the System method 直接对该系统分区表insert是会报ORA-14701的错误的 insert的时候必须要告诉oracle这这条记录放到哪个分区中。 etl@DATAMART>insert into sunwg ...

11g新特性——间隔分区

星期五, 十月 24th, 2008

11g关于分区增加了一个新的特性--间隔分区。 通过这个特性可以将DBA或者开发人员从烦琐的添加分区的工作中解脱出来。sql>create table sunwg 2 (id number, 3 join_date date) 4 partition by range(join_date) 5 interval (numtoyminterval(1,'MONTH')) 6 (partition p200801 values less than (to_date('20080201','yyyymmdd')) 7 ) 8 / Table created. sql>select partition_name,HIGH_VALUE from user_tab_partitions where table_name='SUNWG'; PARTITION_NAME HIGH_VALUE ------------------------------ -------------------------------------------------------------------------------- P200801 TO_DATE(' 2008-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') sql>insert into sunwg values (1,to_date('20080105','yyyymmdd')); 1 row created. sql>commit; Commit complete. sql>insert into sunwg values (1,to_date('20080202','yyyymmdd')); 1 row created. sql>commit; Commit complete. sql>select partition_name,HIGH_VALUE from ...

Page 1 of 6123456»