Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 增加oracle中Varchar2()的大小_Sql_Oracle_Oracle10g - Fatal编程技术网

Sql 增加oracle中Varchar2()的大小

Sql 增加oracle中Varchar2()的大小,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,是否可以将列的大小(例如varchar2(25))增加50?准确地说,我不是在寻找这样的东西: ALTER TABLE <Table_name> modify <Column_name> varchar2(75); altertablemodifyvarchar2(75); 更确切地说,我想知道的是,如果程序员不进行显式计算,会将大小增加50或其他一些整数常量 PS:如果我不清楚,请发表评论。只是想澄清一下,您似乎在寻求一种在不知道原始大小的情况下为列大小添加固定值的

是否可以将列的大小(例如varchar2(25))增加50?准确地说,我不是在寻找这样的东西:

ALTER TABLE <Table_name> modify <Column_name> varchar2(75);
altertablemodifyvarchar2(75);
更确切地说,我想知道的是,如果程序员不进行显式计算,会将大小增加50或其他一些整数常量


PS:如果我不清楚,请发表评论。

只是想澄清一下,您似乎在寻求一种在不知道原始大小的情况下为列大小添加固定值的方法(因此询问如何添加50并禁止将其直接设置为75,这需要知道它是25才能开始)

大多数数据库提供系统表或视图,这些表或视图为您提供有关各种对象的元数据。例如,DB2/z有
sysibm.syscolumns
,Oracle有
all_tab_columns
,如中所示

如果希望在不预先知道列大小的情况下将列扩展50,只需参考元数据即可获得当前大小,然后只需添加50,构造一条语句即可

换言之,请使用以下内容:

select char_length from all_tab_columns
    where owner = '<Table_owner>'
    and table_name = '<Table_name>'
    and column_name = '<Column_name>'
您可以从该程序的后续运行中看到,它每次将列宽增加50:

pax> java chgcolsz
Current size is 50
Executing: alter table pax.xyzzy alter column column1 set data type varchar(100)

pax> java chgcolsz
Current size is 100
Executing: alter table pax.xyzzy alter column column1 set data type varchar(150)

pax> java chgcolsz
Current size is 150
Executing: alter table pax.xyzzy alter column column1 set data type varchar(200)

如果要在表外执行操作,请选择“是!”!但是为了储存在桌子上,不@阿休托沙里亚:对不起,我不明白,你能详细解释一下吗?
pax> java chgcolsz
Current size is 50
Executing: alter table pax.xyzzy alter column column1 set data type varchar(100)

pax> java chgcolsz
Current size is 100
Executing: alter table pax.xyzzy alter column column1 set data type varchar(150)

pax> java chgcolsz
Current size is 150
Executing: alter table pax.xyzzy alter column column1 set data type varchar(200)