表字段创建最大长度:4000 VARCHAR2
CREATE TABLE x_vctest(a VARCHAR2(4000));
CREATE TABLE x_vctest(a VARCHAR2(4001)); --err
CREATE TABLE x_vctest(a VARCHAR2(4001)); --err
plsql变量定义最大长度:32767 VARCHAR2
CREATE OR REPLACE PROCEDURE x_vcprc(p IN VARCHAR2 DEFAULT NULL)
IS
x_var VARCHAR2(32767);
--x_var2 VARCHAR2(32768); -- err
BEGIN
--dbms_output.put_line(p);
NULL;
END x_vcprc;
CREATE OR REPLACE PROCEDURE x_vcprc(p IN VARCHAR2 DEFAULT NULL)
IS
x_var VARCHAR2(32767);
--x_var2 VARCHAR2(32768); -- err
BEGIN
--dbms_output.put_line(p);
NULL;
END x_vcprc;
plsql调用参数最大长度:65535 VARCHAR2
DECLARE
lv_test VARCHAR2(32767);
BEGIN
FOR i IN 1 .. 32767
LOOP
lv_test := lv_test || '-';
END LOOP;
dbms_output.put_line(lengthb(lv_test || lv_test || '1')); --65535,65536 --> err
x_vcprc(lv_test || lv_test || '1');
END;
DECLARE
lv_test VARCHAR2(32767);
BEGIN
FOR i IN 1 .. 32767
LOOP
lv_test := lv_test || '-';
END LOOP;
dbms_output.put_line(lengthb(lv_test || lv_test || '1')); --65535,65536 --> err
x_vcprc(lv_test || lv_test || '1');
END;