oracle 中的varchar2类型会自动去掉插入的值的空格吗?

如题!!求专业

不会自动去掉的,如果想要去掉可以使用以下的方法:
insert into 表名 (列名) values (replace(列值, chr(32), ''));
chr(32)是空格的意思,因为空格的ascii码是32
同样,如果要去回车或其他特殊字符的话只需要吧chr中的数字改成对应的ascii码即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-02
不会,需要一个函数 trim(' aa ') ,这样插入后 前后的空格就去掉了。 相当于'aa'.追问

但是有些地方说他会自动去掉插入值的前后空格,求真相

追答

sys@DOO> create table test1(a varchar2(10));
Table created.
sys@DOO> insert into test1 values(' aa ');
1 row created.
sys@DOO> commit;
Commit complete.
sys@DOO> select length(a),a from test1;
LENGTH(A) A
---------- --------------------
4 aa
sys@DOO> insert into test1 values(trim(' bb '));
1 row created.
sys@DOO> commit;
Commit complete.
sys@DOO> select length(a),a from test1;
LENGTH(A) A
---------- --------------------
4 aa
2 bb
sys@DOO> select length(a),'--'||a||'--' from test1;
LENGTH(A) '--'||A||'--'
---------- ----------------------------
4 -- aa --
2 --bb--

本回答被提问者采纳
相似回答