1.時間轉型

to_char(sysdate,'yyyy/mm/hh') = 20XX/XX/XX
to_char(sysdate,'yyyy/mm/hh HH24:MI:SS') = 20xx/xx/xx xx:xx:xx
to_date('2013/01/01','yyyy/mm/dd')
to_number

 

=====================================================================

Create table t_message    // table名稱
(
SeqNo NUMBER(20) NOT NULL,
NAME VARCHAR2(20),
EMAIL VARCHAR2(80),
MSG VARCHAR2(20),
Updator VARCHAR2(10),
Updatdt DATE,
Creator VARCHAR2(10),
Creatdt DATE
);

alter table t_message add constraint t_messageP02 primary key (SeqNo);     //主key
create sequence t_messages;                                                                           // 流水號Seqno

======================================================================

2.加開欄位

ALTER TABLE temptable ADD (新增欄位名 型態)

也可開多個欄位:
ALTER TABLE temptable
ADD (新增欄位名 型態)
ADD (新增欄位名 型態)
ADD (新增欄位名 型態)
ex ALTER TABLE C08TEST ADD (STARTNUB Number) 或 ALTER TABLE table_name ADD(ADR VARCHAR2(xx))

加註解 : COMMENT ON COLUMN C08TndrVender.SeqNo IS '資料識別碼';

 

修改欄位大小: ALTER TABLE TableName  MODIFY  欄位名稱 VARCHAR2(2);

 

========================================================================

3.加sequence

-- Create sequence
create sequence sequence名稱; ps 名稱通常取與table名稱一樣再加個 s 以便使用

select sequence名稱.NEXTVAL from dual 取流水號

===========================================================================

4.一些Oracle小功能

NVL:

NVL(X1, X2)
X1 為 NULL, 給 X2;
不為 NULL, 給 X1
注意二者的類型需一致

NVL2(X1, X2, X3)
X1 不為 NULL, 給X2;
為 NULL, 給 X3
X2 和 X3 類型不同的話, X3 會轉換為 X2 的類型

 

DECODE:

select decode( x , 1 , 'AAA ', 2 , 'BBB', 'CCC') from dual

當x等於1時,則返回'AAA'   當x等於2時,則返回'BBB'  否則 'CCC'

 SUBSTR:

select substr('XXYYZZ',1,3) from dual

則顯示: XXY   取第一位到第三位資料

Ex   trim(to_char(nvl(PRICE,0), '99,999,990.00')) as PRICE    ==可轉成 金額單位  如 2,889,999

=============================================================================

C# 轉型
Convert.ToInt32(ss)
Convert.ToString(xx)
Convert.ToDateTime(dd)

 

================================================================================

distinct

Select  distinct  row1   From Table1     ====  基本式,但如果要查兩個以上的欄位 只需後面家藍位名稱即可,多家會錯誤

Ex: Select distinct row1 , distinct row2 From Table1  // 錯誤,第二個欄位無須再加distinct 

 

 

http://space.itpub.net/batch.viewlink.php?itemid=685332      兩個Table 合併起來的方法

 

===============================================================

int.TryParse   及 小數點

int  a1 , a2;

bool   x1 =  int.TryParse("all3"out a1 );  // 因all3無法轉為數值 則 a1 得到0 , x1 為false

bool   x2 =  int.TryParse("555"out a2 ); // 555可轉為數值則 a2 得到 555 , x2 為true 

 

double xx = 0.224

Math.Round((xx / doubleTendCount), 2) // 四捨五入取小數點第二位

 

=========================================================

建立View 基本上view與join的table資料會同步

EX:

prompt
prompt Creating view V_table_view
prompt ==============================
prompt
create or replace view V_table_view as

select distinct A.USERID ,C."ITEMID",C."PRGCODE",C."SORTID",

C."PARENTID",C."ISLEAF",C."NODEID",C."URLPATH",C."AVAILABLE"

from table A INNER JOIN table B ON A.ROLEID=B.ROLEID INNER JOIN talbe  C ON B.ITEMID=C.ITEMID

ORDER BY SORTID;

 ==================================================================

建利 sequence 

prompt
prompt Creating sequence TableA
prompt ==================================
prompt
create sequence TableAs  (+s表示TableA的sequence ,以便TableA呼叫)
minvalue 1
maxvalue 9999999999999999999999999999
start with 21
increment by 1
cache 20;

 

 =====================================================================

查詢oracle 的資料表名稱、欄位等

EX:

select table_name,comments from user_tab_comments where comments='供應商檔'

select * from user_tab_comments (可查三個欄位 table_name、table_type、comments)

 

查詢oracle的各資料表裡的藍位名稱及屬性

Ex:

SELECT table_name,COLUMN_ID,column_name,data_type,data_length, DATA_PRECISION
FROM user_tab_columns

SELECT *
FROM user_tab_columns

 

 

=====================================================

BLOB

MySql 中的LONGBLOB 型別 要改為BLOB

Ex:

Mysql:   bytesName  LONGBLOB   NOT NULL

Oracle: bytesName   BLOB           Not null

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 JoshS 的頭像
    JoshS

    JoshS的部落格

    JoshS 發表在 痞客邦 留言(0) 人氣()