您的位置:首页 > 数据库 > Oracle

Oracle varchar2 length 分析

2016-02-12 16:16 573 查看

Oracle varchar2 length 分析

Code 1

DECLARE
V_OUT   VARCHAR2(32767);
BEGIN
V_OUT := RPAD('T', 4001, 'M');
EXECUTE IMMEDIATE 'insert into test_varchar VALUES(:1)' using V_OUT;
END;


Code 2

DECLARE
V_OUT   VARCHAR2(32767);
BEGIN
V_OUT := RPAD('T', 4001, 'M');
EXECUTE IMMEDIATE 'insert into test_varchar VALUES('||chr(39)||V_OUT||chr(39)||')';
END;


这两段代码 其中 Code 1 是正确的。

Code 2 代码执行错误如下:

ORA-01704: string literal too long
ORA-06512: at line 5
01704. 00000 -  "string literal too long"
*Cause:    The string literal is longer than 4000 characters.
*Action:   Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.


原因分析如下:

Oracle 中‘’最大长度 4000。

CREATE TABLE test_varchar ( NAME VARCHAR2(4000) );


建表SQL中VARCHAR2 最大长度 4000。

详见:

http://www.techonthenet.com/oracle/datatypes.php

http://www.w3school.com.cn/sql/sql_syntax.asp

http://www.cnblogs.com/kerrycode/p/3833746.html

附录

CREATE TABLE test_varchar ( NAME clob );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle