2013-09-30 49 views

回答

3

至少有一个区别:长度。

在Pl/sql中,它的最大长度为32,767字节,而在sql中它只能有4,000字节长。

+3

对于高达11gR2的Oracle版本,这是正确的。从12c开始,SQL中Varchar2的最大长度也是32767字节,请参阅http://docs.oracle.com/cd/E16655_01/server.121/e17906/chapter1.htm –

+0

感谢Frank,目前还不知道。猜猜我应该刷新我的Oracle技能。 – ErikL

+0

另一个区别是[内存分配](http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/datatypes.htm#CIHEDDFG):“对于CHAR变量或VARCHAR2变量,其最大大小小于2,000字节,PL/SQL在编译时为最大容量分配足够的内存,对于最大容量为2000字节或更大的VARCHAR2,PL/SQL在运行时分配足够的内存来存储实际值。 ,PL/SQL会优化性能较小的VARCHAR2变量,并优化较大的变量以提高内存使用效率。“虽然这可能只在您滥用PL/SQL时才起作用。 –