bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

oracle怎么改字 oracle怎么改字符集

oracle安裝后怎么修改字符集

數據庫字符集在創建后原則上不能更改。不過有2種方法可行。

鯉城ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

1. 如果需要修改字符集,通常需要導出數據庫數據,重建數據庫,再導入數據庫數據的方式來轉換。

2. 通過ALTER DATABASE CHARACTER SET語句修改字符集,但創建數據庫后修改字符集是有限制的,只有新的字符集是當前字符集的超集時才能修改數據庫字符集,例如UTF8是US7ASCII的超集,修改數據庫字符集可使用ALTER DATABASE CHARACTER SET UTF8。

oracle中怎么更改表中字段名?

首先方法是使用RENAME關鍵字:

修改字段名:alter table 表名 rename column 現列名 to 新列名;

修改表名:alter table 表名 rename to 新表名

增加字段語法:alter table tablename add (column datatype [default value][null/not null],….);

說明:alter table 表名 add (字段名 字段類型 默認值 是否為空);

例:alter table sf_users add (HeadPIC blob);

例:alter table?sf_users add (userName varchar2(30) default?'空' not null);

修改字段的語法:alter table tablename modify (column datatype [default value][null/not null],….);

說明:alter table 表名 modify (字段名 字段類型?默認值 是否為空);

例:alter table sf_InvoiceApply modify (BILLCODE number(4));

刪除字段的語法:alter table tablename drop (column);

說明:alter table 表名 drop column 字段名;

例:alter table sf_users drop column HeadPIC;

字段的重命名:

說明:alter table 表名 rename ?column? 列名 to 新列名?? (其中:column是關鍵字)

例:alter table sf_InvoiceApply rename column PIC to NEWPIC;

表的重命名:

說明:alter table 表名 rename to? 新表名

例:alter table?sf_InvoiceApply rename to??sf_New_InvoiceApply;

oracle怎么更改分區關鍵字

默認情況下,oracle的分區表對于分區字段是不允許進行update操作的,如果有對分區字段行進update,就會報錯——ORA-14402: 更新分區關鍵字列將導致分區的更改。但是可以通過打開表的row movement屬性來允許對分區字段的update操作。

例:創建分區表test_part進行實驗

create table TEST_PART

(

A1 NUMBERnot null,

A2 DATE not null,

A3 VARCHAR2(6) not null,

A4 DATE not null,

A5 NUMBER not null,

)

partition by range (A1)

(

partition P1 values less than (1000),

partition P2 values less than (2000),

partition P3 values less than (3000),

partition P4 values less than (4000),

partition P5 values less than (5000),

partition P6 values less than (MAXVALUE)

);

插入如下的數據

SQL select * from test_part;

A1 A2 A3 A4 A5

---------- ----------- ------ ----------- ----------

123 2006-06-30 123456 2006-06-30 123

456 2006-06-30 asdfgh 2006-06-30 456

1 2006-06-30 234123 2006-06-30 1

2 2006-06-30 234234 2006-06-30 2

1234 2006-06-30 456789 2006-06-30 1234

1111 2006-06-30 ewrqwe 2006-06-30 1111

2222 2006-06-30 fdafda 2006-06-30 2222

3333 2006-06-30 342342 2006-06-30 3333

5678 2006-06-30 qwerty 2006-06-30 5678

9 rows selected

分區P1、P2的數據分別為:

SQL select rowid,t.* from test_part partition(p1) t;

ROWID A1 A2 A3 A4 A5

------------------ ---------- ----------- ------ ----------- ----------

AAAGLoAAGAAAtsEAAB 456 2006-06-30 asdfgh 2006-06-30 456

AAAGLoAAGAAAtsEAAC 1 2006-06-30 234123 2006-06-30 1

AAAGLoAAGAAAtsEAAD 2 2006-06-30 234234 2006-06-30 2

AAAGLoAAGAAAtsEAAE 123 2006-06-30 123456 2006-06-30 123

SQL select rowid,t.* from test_part partition(p2) t;

ROWID A1 A2 A3 A4 A5

------------------ ---------- ----------- ------ ----------- ----------

AAAGLwAAGAAA+8MAAC 1234 2006-06-30 456789 2006-06-30 1234

AAAGLwAAGAAA+8MAAD 1111 2006-06-30 ewrqwe 2006-06-30 1111

直接update提示錯誤

SQL update test_part set a1=1123 where a1=123;

update test_part set a1=1123 where a1=123

ORA-14402: 更新分區關鍵字列將導致分區的更改

打開row movement屬性

SQL alter table test_part enable row movement;

Table altered

再次執行update操作

SQL update test_part set a1=1123 where a1=123;

1 row updated

執行是成功的并遷移到分區P2上了,且這時候rowid也發生了變化

SQL select rowid,t.* from test_part partition(p2) t;

ROWID A1 A2 A3 A4 A5

------------------ ---------- ----------- ------ ----------- ----------

AAAGLwAAGAAA+8MAAC 1234 2006-06-30 456789 2006-06-30 1234

AAAGLwAAGAAA+8MAAD 1111 2006-06-30 ewrqwe 2006-06-30 1111

AAAGLwAAGAAA+8PAAB 1123 2006-06-30 123456 2006-06-30 123

SQL

enable row movement可以允許數據段的壓縮、update分區字段的數據(跨分區的)

如何更改Oracle字符集

轉載自寒思國內最常用的Oracle字符集ZHS16GBK(GBK

16-bit

Simplified

Chinese)能夠支持繁體中文,并且按照2個字符長度存儲一個漢字。UTF8字符集是多字節存儲,1個漢字(簡體、繁體)有時采用3個字符長度存儲。

Oracle支持字符集的更改,但是UTF8是Oracle中最大的字符集,也就是說UTF8是ZHS16GBK的嚴格超集。

對于子集到超集的轉換,Oracle是允許的,但是對于超集到子集的轉換是不允許的。一般對于超集到子集的轉換,建議是通過dbca刪除原來的數據庫,重新再建庫,選擇正確的字符集,然后導入備份。

我的方案是:先備份數據,然后強制轉換字符集從UTF8到ZHS16GBK,然后導入備份數據。如果不行,才來重新建庫,設置字符集ZHS16GBK,導入備份數據。如果這還不行,就把更改字符集從ZHS16GBK到UTF8(這是安全的),再導入備份數據,恢復到原始狀況。這樣就有可能避開重新建庫的麻煩。

1.

備份數據庫中所有用戶的數據

以oracle用戶登陸,執行以下命令

#

export

NLS_LANG

=

“SIMPLIFIED

CHINESE_CHINA.UTF8”

保持與數據庫服務器端一致,這樣在exp導出時,就不會存在字符的轉換了,備份最原始的數據。

2.

評估UTF8轉換成ZHS16GBK的風險

轉換之前,要使用Oracle的csscan工具對數據庫掃描,評估字符集轉換前后,數據有可能的損壞情況。如果評估情況糟糕,那就絕對要放棄了。

先安裝屬于

CSMIG

用戶的一套表和過程。以oracle用戶登陸UNIX,

#sqlplus

“/

as

sysdab”

SQL@$ORACLE_HOME/

rdbms/admin/csminst.sql

SQLexit

#

$ORACLE_HOME\bin\csscan

-help

可以更清楚如何使用csscan。

#

$ORACLE_HOME/bin/csscan

system/sunday

user=mmsc

FROMCHAR=UTF8

TOCHAR=ZHS16GBK

ARRAY=102400

PROCESS=3

csscan.log

以上命令意思是掃描用戶:mmsc中的所有數據,從字符集UTF8更改為ZHS16GBK的轉換情況。然后得到三個文件:scan.txt、scan.out、scan.err。

查看scan.out,scan.err,可以看出mmsc用戶下的所有的數據都是可以轉換的,并且沒有出現轉換“Exceptional”的情況,因此可以更放心一點。

3.

更改數據庫的字符集為ZHS16GBK

前面說過,通過命令“Alter

Database

Characeter

Set

XXXX”,實現從超集到子集的轉換,在Oracle是不允許的。但是該命令,提供這樣的命令方式:

Alter

Database

Character

Set

INTERNAL_CONVERT/

INTERNAL_USE

XXXX

這是Oracle的非公開命令。“在使用這個命令時,Oracle會跳過所有子集及超集的檢查,在任意字符集之間進行強制轉換,所以,使用這個命令時你必須十分小心,你必須清楚這一操作會帶來的風險”。

以oracle用戶登陸UNIX,

#sqlplus

“/

as

sysdba”

SQL

SHUTDOWN

IMMEDIATE;

SQL

STARTUP

MOUNT;

SQL

ALTER

SESSION

SET

SQL_TRACE=TRUE;

SQL

ALTER

SYSTEM

ENABLE

RESTRICTED

SESSION;

SQL

ALTER

SYSTEM

SET

JOB_QUEUE_PROCESSES=0;

SQL

ALTER

SYSTEM

SET

AQ_TM_PROCESSES=0;

SQL

ALTER

DATABASE

OPEN;

SQL

ALTER

DATABASE

CHARACTER

SET

ZHS16GBK;

//如果不使用“INTERNAL_USE”參數,系統會提示出錯:

//ERROR

at

line

1:

//ORA-12712:

new

character

set

must

be

a

superset

of

old

character

set

SQL

ALTER

SESSION

SET

SQL_TRACE=FALSE;

SQL

SHUTDOWN

IMMEDIATE;

SQL

STARTUP;

此時,檢查一下數據庫的字符集是否更改過來

SQL

select

value$

from

props$

where

name=’NLS_CHARACTERSET’;

VALUE$

-----------------

ZHS16GBK

緊接著檢查一下數據庫中簡體中文、繁體中文是否正常,不會出現亂碼。

SQLselect

spid,spname,spshortname

from

spinfovisual_hk

…...

非常不幸,我看到了一堆亂碼,這也證明了Oracle不支持字符集從超集到子集的更改,當時心里很緊張,很怕失敗,從而恢復到原樣。

但是根據以前的驗證,把UTF8下的備份導入到ZHS16GBK中去,是OK的,所以繼續嘗試。

4.

導入備份的用戶數據

還是以oracle用戶登陸UNIX,

先刪除庫中的用戶mmsc:

#sqlplus

“/

as

sysdba”

SQLdrop

user

mmsc

cascade;

SQLexit

再運行createuser.sql,生成mmsc用戶。

然后使用原來的備份文件,導入到mmsc用戶中:

注意:先設置NLS_LANG要與當前數據庫的一致:ZHS16GBK。這樣,導出時用戶會話的NLS_LANG為UTF8,與原先的數據庫字符集一致;現在為ZHS16GBK,與此時的數據庫字符集一致。這樣,導入時,就會進行字符轉換。

#

export

NLS_LANG

=

“SIMPLIFIED

CHINESE_CHINA.ZHS16GBK”

#imp

mmsc/mmsc@mdspdb

file=DSMPD113_user_mmsc.dmp

ignore=y

fromuser=mmsc

touser=mmsc

馬上查看數據庫中簡體、繁體中文,哈哈,沒有亂碼了,一切顯示正常。

緊接著進行驗證,也證明了:1個漢字此時只占用2個字符長度。問題解決了!

oracle 10如何修改字符集?

1.修改服務器端oracle默認字符集:打開“開始菜單”,在“運行”里輸入“cmd”,回車,進入命令行編

輯模式。輸入“sqlplus /nolog”,回車。修改默認字符集,以sysdba的身份執行SQL語句。輸入“conn

sys/password@orcl as sysdba;”,回車。輸入“select name,value$ from props$ where

name like

’%NLS%’;”,查看默認字符集。找到“NLS_CHARACTERSET”,其值為“WE8ISO8859P1”。

2.修改客戶端sqlplus默認字符集:打開“開始菜單”,

在“運行”里輸入“regedit”,回車,進入注冊表編輯器。按CTRL+F,輸入“NLS_LANG”,回車,找到sqlplus軟件目錄下的

NLS_LANG,其鍵值為“WE8ISO8859P1”。雙擊“NLS_LANG”,輸入“ZHS16GBK”,點擊“確定”按鈕保存重啟計算

機。

文章題目:oracle怎么改字 oracle怎么改字符集
當前地址:http://vcdvsql.cn/article8/hepiop.html

成都網站建設公司_創新互聯,為您提供軟件開發品牌網站建設網站營銷網頁設計公司用戶體驗電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計