oracle如何去除某個欄位中兩邊的空格?
轉自:http://www.jb51.net/article/53576.htm
實際例子如下:
update SYS_DICTIONARY_BAK set display_name = trim(display_name)
where table_name='T_GUARDIAN'
and column_name='zy'
;
引申:
如 trim('字元1' from '字串2') ,字元1只能是單個字元。
1. trim()刪除字串兩邊的空格。
2. ltrim()刪除字串左邊的空格。
3. rtrim()刪除字串右邊的空格。
4. trim('字元1' from '字串2') 分別從字元2串的兩邊開始,刪除指定的字元1。
5. trim([leading | trailing | both] trim_char from string) 從字串String中刪除指定的字元trim_char。
leading:從字串的頭開始刪除。
trailing:從字串的尾部開始刪除。
borth:從字串的兩邊刪除。
6. tim()只能刪除半形空格。
For example:
trim(' tech ') would return 'tech';
trim(' ' from ' tech ') would return 'tech';
trim(leading '0' from '000123') would return '123';
trim(trailing '1' from 'Tech1') would return 'Tech';
trim(both '1' from '123Tech111') would return '23Tech';
說明:
其中SYS_DICTIONARY_BAK表定義為:
CREATE TABLE "SCOTT"."SYS_DICTIONARY_BAK"
("PK_ID" NUMBER(10,0) NOT NULL ENABLE,
"TABLE_NAME" NVARCHAR2(100),
"COLUMN_NAME" NVARCHAR2(100),
"VALUE" NVARCHAR2(100),
"DISPLAY_NAME" NVARCHAR2(100),
"ORDERBY" NUMBER(10,0),
"MEMO" NVARCHAR2(512),
"CREATE_TIME" CHAR(19 CHAR),
"UPDATE_TIME" CHAR(19 CHAR),
"DR" NUMBER(3,0)
) SEGMENT CREATION IMMEDIATE
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" ;
ALTER TABLE "SCOTT"."SYS_DICTIONARY_BAK" MODIFY ("PK_ID" NOT NULL ENABLE);