[20141106]type and table.txt

[20141106]type and table.txt

--看看建立type与表.

SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

CREATE OR REPLACE TYPE SCOTT.ty_obj as object
      (
       output varchar2(250)
      );
/

SCOTT@test> CREATE TABLE TX OF TY_OBJ;
Table created.

SCOTT@test> select * from dba_tables where table_name='TX' and owner=user;
no rows selected
--竟然无法查询.

SCOTT@test> select owner,table_name,tablespace_name from dba_all_tables where table_name='TX' and owner=user;
OWNER  TABLE_NAME TABLESPACE_NAME
------ ---------- ------------------------------
SCOTT  TX         USERS

SCOTT@test> @ddl scott.tx
C100
----------------------------------------------------------------------------
  CREATE TABLE "SCOTT"."TX" OF "SCOTT"."TY_OBJ"
OIDINDEX  ( PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" )
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ;

SCOTT@test> select column_name,data_type,column_id,hidden_column,virtual_column,segment_column_id,internal_column_id,data_default c30 from dba_tab_cols where owner=user and table_name='TX';
COLUMN_NAME          DATA_TYPE   COLUMN_ID HID VIR SEGMENT_COLUMN_ID INTERNAL_COLUMN_ID C30
-------------------- ---------- ---------- --- --- ----------------- ------------------ ------------------------------
SYS_NC_OID$          RAW                   YES NO                  1                  1 SYS_OP_GUID()
SYS_NC_ROWINFO$      TY_OBJ                YES YES                                    2
OUTPUT               VARCHAR2            1 NO  NO                  2                  3

--可以发现仅仅显示OUTPUT,在段中保存SYS_NC_OID$,OUTPUT.SYS_NC_OID$的缺省值SYS_OP_GUID(),guid的串.好像随机生产的串,冲突的概率很低.

--如何插入呢?
SCOTT@test> insert into tx (output) values ('this is a test!');
1 row created.

SCOTT@test> select * from tx;
OUTPUT
-----------------------------
this is a test!

SCOTT@test> select SYS_NC_OID$ c40 ,SYS_NC_ROWINFO$ c50 ,OUTPUT c20 from tx ;
C40                                      C50(OUTPUT)                                        C20
---------------------------------------- -------------------------------------------------- --------------------
0727ECBEB9CB37C2E0532864A8C0A4BF         TY_OBJ('this is a test!')                          this is a test!

SCOTT@test> select TY_OBJ('aaa') c20 from dual ;
C20(OUTPUT)
--------------------
TY_OBJ('aaa')

SCOTT@test> select SYS_OP_GUID() from dual ;
SYS_OP_GUID()
--------------------------------
0727ECBEB9CC37C2E0532864A8C0A4BF

--看看块内存储:

SCOTT@test> select rowid,SYS_NC_OID$ c40 ,SYS_NC_ROWINFO$ c50 ,OUTPUT c20 from tx ;
ROWID              C40                                      C50(OUTPUT)                                        C20
------------------ ---------------------------------------- -------------------------------------------------- --------------------
AABHdYAAEAAAAcDAAA 0727ECBEB9CB37C2E0532864A8C0A4BF         TY_OBJ('this is a test!')                          this is a test!

SCOTT@test> @lookup_rowid AABHdYAAEAAAAcDAAA
    OBJECT       FILE      BLOCK        ROW DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- ----------------------------------------
    292696          4       1795          0 4,1795               alter system dump datafile 4 block 1795;

--bbed 观察:
BBED> set dba  4,1795
        DBA             0x01000703 (16779011 4,1795)

BBED> p *kdbr[0]
rowdata[0]
----------
ub1 rowdata[0]                              @8152     0x2c

BBED> x /rxc
rowdata[0]                                  @8152
----------
flag@8152: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8153: 0x01
cols@8154:    2

col   0[16] @8155:  0x07  0x27  0xec  0xbe  0xb9  0xcb  0x37  0xc2  0xe0  0x53  0x28  0x64  0xa8  0xc0  0xa4  0xbf
col   1[15] @8172: this is a test!

时间: 2024-10-01 15:14:32

[20141106]type and table.txt的相关文章

[20111228]9i?临时表and truncate table.txt

[20111228]9i?临时表and truncate table.txt 这个问题以前遇到,今天再一次遭遇,把它写下来. 1.测试环境:SQL> select * from v$version ; BANNER----------------------------------------------------------------Oracle9i Enterprise Edition Release 9.2.0.8.0 - ProductionPL/SQL Release 9.2.0.

[20140114]简单探究nested table.txt

  对nested table一点也不熟悉,估计也很少人使用,今天看了一些文档,做一些简单的探究,估计以后也不会使用. 1.测试环境: SCOTT@test> @ver BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

[20171115]关于namespace.txt

[20171115]关于namespace.txt --//第一次听到这个概念,好像是那篇blog提到,表与索引在不同的namespace里面.也就是在相同schema下建立的表可以与索引同名. --//而在同一schema下的namespace的建立的对象名字是不能重名的. --//前几天在测试dbms_shared_pool.pin时,发现SEQUENCE的namespace竟然是TABLE/PROCEDURE,感觉有必要做一些学习,了解这方面 --//的知识. --//摘要: http:/

[20170627]使用TSPITR恢复表空间.txt

[20170627]使用TSPITR恢复表空间.txt --//RMAN提供了一种实现所谓TSPITR(Tablespace Point-In-Time Recovery)的技术,通过简单的一个语句,就可以在主库不停库(很吸引人) --//的情况下,利用备份集和连续的归档日志,实现表空间级别的定点恢复. --//实际上rman就是把人工一步一步执行的命令打包,执行恢复工作,减轻dba负担.我一直认为这个不是很实用,前几天做了利用传输表空 --//间的测试,感觉那个更实用一些. --//blog.

[20170623]利用传输表空间恢复数据库2.txt

[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.itpub.net/267265/viewspace-2141166/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------------------

[20170623]利用传输表空间恢复部分数据.txt

[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解. --//这样的操作模式仅仅减少expdp生成原数据的过程. --//我想一下,rman也支持建立传输表空间的命令.我仔细看了以前的笔记,发现这样最大的有点不用设置只读,实际上它是通过建立辅组实 --//例来建立传输文件,理论讲可以恢复到特定的scn,这样可以利用它解决一些误操作的问题,还是通过例子来说明问题. 1.环

[20150126]datadump的非文档参数.txt

[20150126]datadump的非文档参数.txt --总结一下expdp/impdp的非文档参数: 1. METRICS METRICS=Y ,记录执行详细的执行时间.例子: $ expdp scott/btbtms DIRECTORY=DATA_PUMP_DIR  DUMPFILE=emp012601.dmp LOGFILE=emp012601.log tables=emp metrics=y Export: Release 11.2.0.3.0 - Production on Mon

[20150127]expdp缺省DIRECTORY.txt

[20150127]expdp缺省DIRECTORY.txt --昨天在学习expdp/impdp命令时,有一次没有输入DIRECTORY参数.发现居然也可以过去,例子. 1.测试1: SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ----------------------------------------

[20141028]不同的表rowid可以相同.txt

[20141028]不同的表rowid可以相同.txt --前一阵子参加一个会议,在会议间隙听到别人议论"招DBA"的事,问上面的问题,竟然许多dba都回答不上来,看来现在的认证水分太大. --"在一个数据库里面,不同的表rowid可以相同吗?" --正好前一阵子看了cluster表的内容,知道这个答案(也许还有其他答案,我不知道,至少cluster表是其中一个正确的答案),自己也做一些 --测试.相关链接如下: http://blog.itpub.net/2672