oracle資料庫修改欄位
㈠ oracle 修改欄位名, 欄位長度的操作是什麼
1、創建表:
CREATE TABLE Student(
id varchar2(32) primary key,
name varchar2(8) not null,
age number
);
2、修改欄位名:
alter table Student rename name to StuName;
3、修改數據類型:
alter table Student modify (id varchar2(64));
㈡ 如何批量修改oracle資料庫中的某一個欄位
--以下是我根據你的描述,做的測試,希望對你有幫助:
-- 新建一張表kongxianji:
CREATE TABLE kongxianji(a VARCHAR2(200));
-- 插入數據,然後提交:
INSERT INTO kongxianji (a) VALUES ('12345(6)789');
INSERT INTO kongxianji (a) VALUES ('12345(67)89');
INSERT INTO kongxianji (a) VALUES ('12345(678)9');
COMMIT;
SELECT * FROM kongxianji;
-- 把a中的括弧去掉,然後提交,到這一步可以查看錶中數據的變化情況:
UPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');
COMMIT;
SELECT * FROM kongxianji;
㈢ 如何批量修改oracle資料庫中某一個表中的某一列數據
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然後看看影響,畢竟在生產環境作這樣的操作風險很大。如果是誤操作,最好還是請DBA來恢復,雖然這樣做會被挨罵,但總比錯上加錯,最後連挨罵的機會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
1、構建臨時表進行主鍵關聯更新
需求:T1表有千萬級別的數據量,需要更新這個表的欄位a,b滿足2個條件的記錄。
做法:一般業務會將條件通過excel表格提供給開發,那麼開發首先需要將這個excel表格的內容插入到臨時表T2中,考慮到a,b都不是主鍵,那麼需要將a,b轉化成主鍵後再插入到T2表中,T2表中還可以保存更新前的數據,方便做數據回滾,T2表中有數據後,就可以執行下面腳本進行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強調的是id必須是主鍵
㈣ oracle資料庫中怎麼修改一個欄位的值
需要用update語句來進行修改。
update語句基本語法:
update 表名 set 欄位='值' where 條件;
如test表中有如下數據:
現在要將ID=3的這條數據的NAME改成badkano,可用如下語句:
update test set NAME='badkano' where ID=3;
commit;
運行後的結果:
說明:
update語句執行後,必須commit來提交,否則只在當前session中有效。
㈤ oracle資料庫只想修改表中的一個欄位的部分數據
可以通過update方法進行批量修改,之後添加必要的條件,針對固定條件的數據進行批量修
改。
sql:update table_name SET age=age+1 where id like '%1111% ';
以上語句就是將id欄位中包含1111的age欄位,進行加1操作。
備註:如果是全部更新的話,去掉後面的where語句即可。
sql:update table_name SET age=25;
㈥ 批量修改oracle資料庫中的某一個欄位
可以通過update方法進行批量修改。
sql:update table_name SET age=25;
備註:也可以添加必要的條件,針對固定條件的數據進行批量修改。
sql:update table_name SET age=age+1 where name ='zhangsan ';
㈦ 怎樣改變Oracle資料庫的表中欄位的類型
用alter語句進行修改。
語法:
alter
table
表名
modify
欄位名
欄位類型(欄位長度);說明:如果是date等沒有長度的類型,欄位長度部分可以省略。
如:目前test表屬性如下
要將name列的欄位類型改為date類型,可用如下語句:
alter
table
test
mo...
㈧ oracle資料庫,查詢到的結果怎樣修改
在把Oracle查詢結果轉換為SQL Server的時候要特別當心一些不容易注意到的問題。
我們知道,T-SQL是SQL Server的語言引擎,而Oracle的語言引擎卻是PLSQL.這兩種查詢語言都對
ANSI SQL-92標准進行了擴展以提供額外的支持力度。你所創建的應用程序幾乎都要用到這些補充特性。本文就對最常用的、非標準的Oracle擴展進行了說明,同時還要介紹下如何
對這些擴展進行轉化以用在SQL Server環境下。
列的選擇
用PLSQL執行數據查詢的時候,FROM子句是必須的,這同SQL Server的要求是一樣的。 SELECT語句必須選擇針對的數據表。在Oracle資料庫內有一種特殊的表DUAL.DUAL表由
Oracle連同數據字典一同創建,所有的用戶都可以用名稱DUAL訪問該表。這個表裡只有一列DUMMY,該列定義為VARCHAR2
(1)類型,有一行值X.
從DUAL表選擇數據常被用來通過SELECT語句計算常數表達式,由於DUAL只有一行數據,所以常數只返回一次。
Oracle下的DUAL查詢如下所示:
SELECT
『x』 FROM al
而對等的SQL Server查詢則是下面這個樣子:
SELECT 『x』
連接
Oracle用|| 符號作為連接符,而SQL Server的連接符是加號:+ .
Oracle查詢如下所示:
Select 『Name』 || 『Last Name』
From tableName
對應的SQL Server查詢如下所示:
Select 『Name』 + 『Last Name』
數字取捨
Oracle資料庫內有一個TRUNC函數,該函數返回m位十進制數的n位;如果省略m則n就是0位。m的值可以為負,表示截去小數點左邊m位數字。
在SQL Server下可以用Round或者Floor.
以下是Oracle查詢:
SELECT
TRUNC(15.79,1) "Truncate" FROM DUAL;
下面是同類查詢的SQL Server版本:
SELECT ROUND(15.79, 0) rounded ,
ROUND(15.79, 0,1) truncated
SELECT FLOOR(ROUND(15.79, 0)),
FLOOR(ROUND(15.79, 0,1) )
在把Oracle查詢轉換為SQL Server的時候要特別當心一些不容易注意到的問題。我們知道,T-SQL是SQL Server的語言引擎,而Oracle的語言引擎卻是PLSQL.這兩種查詢語言都對
ANSI SQL-92標准進行了擴展以提供額外的支持力度。你所創建的應用程序幾乎都要用到這些補充特性。本文就對最常用的、非標準的Oracle擴展進行了說明,同時還要介紹下如何
對這些擴展進行轉化以用在SQL Server環境下。
列的選擇
用PLSQL執行數據查詢的時候,FROM子句是必須的,這同SQL Server的要求是一樣的。 SELECT語句必須選擇針對的數據表。在Oracle資料庫內有一種特殊的表DUAL.DUAL表由
Oracle連同數據字典一同創建,所有的用戶都可以用名稱DUAL訪問該表。這個表裡只有一列DUMMY,該列定義為VARCHAR2
(1)類型,有一行值X.
從DUAL表選擇數據常被用來通過SELECT語句計算常數表達式,由於DUAL只有一行數據,所以常數只返回一次。
Oracle下的DUAL查詢如下所示:
SELECT
『x』 FROM al
而對等的SQL Server查詢則是下面這個樣子:
SELECT 『x』
連接
Oracle用|| 符號作為連接符,而SQL Server的連接符是加號:+ .
Oracle查詢如下所示:
Select 『Name』 || 『Last Name』
From tableName
對應的SQL Server查詢如下所示:
Select 『Name』 + 『Last Name』