相关疑难解决方法(0)

为什么VARCHAR需要长度规格?

为什么我们总是需要指定VARCHAR(length)而不仅仅是VARCHAR?无论如何它是动态的.

UPD:我特别困惑的是它是强制性的(例如在MySQL中).

sql database varchar

54
推荐指数
4
解决办法
3万
查看次数

定义VARCHAR2列的长度更大的影响

当值不超过10字节时VARCHAR2(1000),VARCHAR2(10)使用Oracle 而不是Oracle 定义列有什么影响?

该列是否仅占用存储值所需的空间,还是会对表空间/索引的大小/性能产生负面影响?

sql oracle varchar2

24
推荐指数
2
解决办法
2万
查看次数

对Oracle存储过程的varchar2输入的默认大小是多少,是否可以更改?

我在Oracle数据库10g中有一个存储过程,我的输入是varchar2,但是当输入字符串很长时(我不确定精确长度可能> 8000),我遇到了问题.

我的想法是'intext varchar2'(如下所示)默认是太小了.在我需要更长字符串的其他情况下,我可能将varchar2定义为"intext2 VARCHAR2(32767);" 我尝试在下面的代码中类似地定义大小,但我的语法不正确.

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....
Run Code Online (Sandbox Code Playgroud)

intext varchar2的(默认)大小是多少?

可以定义(增加)该大小吗?

谢谢

oracle stored-procedures varchar2

16
推荐指数
1
解决办法
4万
查看次数

为什么Oracle varchar2具有强制大小作为定义参数?

我想知道为什么Oracle需要在定义中使用size参数VARCHAR2.

我认为这是为了制约.oracle将此参数作为像NUMBERdataType 这样的可选项更好吗?

我经常在将旧表调整为更大的大小时遇到​​问题,因为有时值大于VARCHAR2列的大小定义.

定义一种类型的VARCHAR2(10或者是相同的VARCHAR2(1000).

我想,这是一个不必要的约束.如果没有,你知道这个约束导致一些有用的真实案例吗?为什么没有这种NUMBER类型的声明?

oracle varchar2

15
推荐指数
3
解决办法
3万
查看次数

Oracle中varchar2 PL/SQL子程序参数的大小限制是多少?

在Oracle PL/SQL中创建过程(或函数)时,不能指定varchar2参数的最大长度,只能指定数据类型.例如

create or replace procedure testproc(arg1 in varchar2) is
begin
  null;
end;
Run Code Online (Sandbox Code Playgroud)

您是否知道可以作为Oracle中此过程的arg1参数传递的字符串的最大长度?

oracle plsql

13
推荐指数
2
解决办法
6万
查看次数

为什么使用除VARCHAR2(4000)以外的任何其他东西来存储Oracle数据库中的字符串?

我找到了一篇Ask Tom的文章,解释说Oracle中的CHAR和VARCHAR2没有太大区别.它给人的印象是我应该为我想要存储字符串的每一列使用VARCHAR2(4000 BYTE),即使对于ISO 639-1语言代码,因为它没有任何区别.

我知道对ISO 639-1语言代码使用CHAR(2)来强制执行基本数据约束是有意义的.但这不是一个足够的约束,因为它允许存储'xy'在不是有效语言代码的列中.另一方面,如果我想更改我的应用程序以使用需要3个字符的ISO 639-2语言代码,我必须支付这个基本约束,并且我必须更改数据库.所以我倾向于从数据库级别放弃约束,因为在我看来,成本高于收益.

考虑到这一点,我想知道为什么我不应该将VARCHAR2(4000 BYTE)用于我打算存储在Oracle数据库中的任何短于4000字节的字符串?

oracle database-design

9
推荐指数
1
解决办法
4487
查看次数

为什么oracle plsql varchar2变量需要大小但参数不需要?

假设你有这个程序:

PROCEDURE f (param VARCHAR2)
IS 
   var VARCHAR2(10);
BEGIN
   var := 'hi';
END f;
Run Code Online (Sandbox Code Playgroud)

我想了解为什么var需要指定长度,但param不是.我很难在oracle文档中找到有关这方面的信息.

oracle plsql varchar2

5
推荐指数
1
解决办法
2200
查看次数

Oracle中的VARCHAR(MAX)与VARCHAR(n)

类似的问题,但对于Oracle.

为什么我不总是想选择VARCHAR(MAX)?

sql oracle types plsql

3
推荐指数
2
解决办法
3万
查看次数

是否可以创建动态 varchar2 变量?

我在 PLSQL 中有一个函数,它使用字符串进行操作并返回 VARCHAR2 类型。

该函数中的变量之一是

result_key     VARCHAR2 (4000) := '';
Run Code Online (Sandbox Code Playgroud)

当它处理大量数据时,我会收到ORA-06502: PL/SQL: numeric or value error: character string buffer too small错误。

看来我必须扩展我的result_key变量。我看到的唯一解决方案是声明result_key

result_key     VARCHAR2 (8000) := '';
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以在不声明固定大小的情况下做到这一点result_key

sql oracle plsql

2
推荐指数
1
解决办法
4495
查看次数