还有就是当我使用 varchar2(2)时,若我插入的字段过长,在JOB执行该插入的操作时,会直接暂停还是怎么样
6 个解决方案
#1
也不是越大越好,根据需要来定,比如你的业务逻辑,某个字段最大为10,超过即为非法,那么用varchar2(10)就很好。
job中插入如果超长,job直接失败,除非你在过程中捕获了异常并忽略它。
job中插入如果超长,job直接失败,除非你在过程中捕获了异常并忽略它。
#2
那我定义成varchar2(10),但是实际值还是得根据插入的值确认大小的啊,对表空间没什么影响,实际定义的小了,只是用来限制输入值的大小?
#3
对。
#4
关键并不是限制输入值的大小,而是表空间的大小,如果varchar2(10),输入的超过10个长度,就非法了~
但是如果所有的都varchar2(10000),占的空间又太大了.这其实跟程序里面定义一个变量是一样的道理,比如long型,interger,double,定义的同时,也就定义了它的数据内存空间.
Oracle是很看重数据本身的一种数据库,它着重数据本身的存储与安全,而不重在它的显示,没有sqlserver方便使用,但是确实非常安全.
但是如果所有的都varchar2(10000),占的空间又太大了.这其实跟程序里面定义一个变量是一样的道理,比如long型,interger,double,定义的同时,也就定义了它的数据内存空间.
Oracle是很看重数据本身的一种数据库,它着重数据本身的存储与安全,而不重在它的显示,没有sqlserver方便使用,但是确实非常安全.
#5
这个我记得,定义varchar2(10000)和varchar2(10)占的空间一样的啊
#6
最主要的用处就是,定义的宽度不一样的时候,在EXE代码里使用那种绑定数据源的显示方式的时候,这个宽度能够自动决定列宽!
这个太有用了....
这个太有用了....
#1
也不是越大越好,根据需要来定,比如你的业务逻辑,某个字段最大为10,超过即为非法,那么用varchar2(10)就很好。
job中插入如果超长,job直接失败,除非你在过程中捕获了异常并忽略它。
job中插入如果超长,job直接失败,除非你在过程中捕获了异常并忽略它。
#2
那我定义成varchar2(10),但是实际值还是得根据插入的值确认大小的啊,对表空间没什么影响,实际定义的小了,只是用来限制输入值的大小?
#3
对。
#4
关键并不是限制输入值的大小,而是表空间的大小,如果varchar2(10),输入的超过10个长度,就非法了~
但是如果所有的都varchar2(10000),占的空间又太大了.这其实跟程序里面定义一个变量是一样的道理,比如long型,interger,double,定义的同时,也就定义了它的数据内存空间.
Oracle是很看重数据本身的一种数据库,它着重数据本身的存储与安全,而不重在它的显示,没有sqlserver方便使用,但是确实非常安全.
但是如果所有的都varchar2(10000),占的空间又太大了.这其实跟程序里面定义一个变量是一样的道理,比如long型,interger,double,定义的同时,也就定义了它的数据内存空间.
Oracle是很看重数据本身的一种数据库,它着重数据本身的存储与安全,而不重在它的显示,没有sqlserver方便使用,但是确实非常安全.
#5
这个我记得,定义varchar2(10000)和varchar2(10)占的空间一样的啊
#6
最主要的用处就是,定义的宽度不一样的时候,在EXE代码里使用那种绑定数据源的显示方式的时候,这个宽度能够自动决定列宽!
这个太有用了....
这个太有用了....