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
留言列表