【问题标题】:Oracle SQL: How should I have to identify the length of string?Oracle SQL:我应该如何识别字符串的长度?
【发布时间】:2018-09-07 20:23:52
【问题描述】:

我是 Oracle SQL 的新手,无法找到正确的答案。

例如,我正在创建新表。

CREATE TABLE "DATASTORE"."NEWTABLE_A" 
   ("BUSINESS_NAME" VARCHAR2(100 BYTE), 
    "TYPE"          VARCHAR2(100 BYTE))

如何识别字符串的长度?是否必须在列中找到最长的单词并以 BYTES 计算?

谢谢

【问题讨论】:

  • VARCHAR2(100 CHAR) 怎么样?

标签: string oracle create-table


【解决方案1】:

将其设置为“足够大”。很多时候是纯粹的估计。

在您的示例中,如果“类型”是 - 例如 - A、CX 和 DDF,那么将该列设置为 100 字节就太多了。但是,如果它可以是介于 A 和 7 字字符串之间的任何字符串,那么 100 字节可能就可以了。

某些列更容易估计或确定(例如“出生日期” - 它将是 DATE 数据类型;或 2-gender 性别 - 您将使用 VARCHAR(1))。其他人则相当困难,所以 - 尽你最大的努力并尽可能接近估计。即使失败,您也可以更改表并修改列长度。不过,这可能会导致基于该表的程序出现问题。

【讨论】:

  • VARCHAR2(1),当然。
  • @William,我故意说 CHAR。它是 M 或 F,仅此而已。我不使用它,也不会推荐它,但是 - 出于本次讨论的目的,我认为这样的声明会说明问题。另一方面,是的 - 你的评论也很有意义。
  • 即便如此,varchar2 应该是标准的字符串类型。我不想鼓励 OP 开始创建 char 列。 (My views on char.)
  • 无论如何我都同意你的看法,我将编辑我的消息并将 CHAR 更改为 VARCHAR2,@William。
  • 如果在 TYPE 列中我们的值 Financial、Commercial、Internet、Commodity 等...超过 1000 个不同的值怎么办?
猜你喜欢
  • 1970-01-01
  • 2019-04-25
  • 2020-11-22
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多