【问题标题】:progress - syntax to modify FIELDprogress - 修改 FIELD 的语法
【发布时间】:2013-11-07 22:25:08
【问题描述】:

我在 Progress 数据库中添加了字段

ADD FIELD filedName on TABLEName...

现在我想更改/修改此字段(PRECISION 或 FORMAT 或其他...)

什么语法是正确的?我试过这样:

  • UPDATE FIELD
  • MODIFY FIELD
  • ALTER FIELD

我尝试了 aldo sql 表示法:alter table 但没有任何效果。

您能帮我修改字段的语法吗?

【问题讨论】:

  • 什么版本的进度?你用的是4gl引擎吗?还是您使用的是外部 sql92 工具?

标签: database openedge progress-db


【解决方案1】:

如果您使用 4GL 引擎(您使用 _progres 或 prowin32 启动会话),那么您想使用“数据字典”工具来创建 DDL。您运行“dict.p”来访问该工具。即:_progres dbName -p dict.p

这将允许您创建表、定义字段和索引等。如果您想导出定义,您可以使用“admin”子菜单转储“.df”文件。您可以手动编辑输出,但您需要知道自己在做什么。这很明显,但没有记录或支持。

不要以为在 4GL 会话中使用 SQL 会奏效。它不会。 4GL 引擎在内部支持非常有限的 sql-89 子集。它主要是作为一种营销策略。在那条路上,只有痛苦和痛苦。不要去那里。如果您使用 _progres 或 prowin32,则您使用的是 4gl 引擎。

如果您在外部使用 SQL92(通过 sqlexp 或其他使用 ODBC 或 JDBC 连接的第三方 SQL 工具),那么普通的 SQL 内容应该可以工作,但您可能需要花一些时间阅读文档以了解哪些领域OpenEdge 不同于 Oracle 或 Microsoft 或您习惯的任何 sql 方言。

【讨论】:

  • -数据字典的无穷大,它看起来像是他们从 70 年代后期挖掘出来的工具......
【解决方案2】:

汤姆,谢谢你的回答。

我在 Linux 上使用 OpenEdge Release 10.1A02。

我可以制作一个 dump.df 文件,也可以从文件中添加新表(类似 df)。 但是为什么我不能修改任何添加的字段? Ofcorse 我可以使用“p”编辑器并从菜单工具/数据编辑器/架构中手动执行并添加新表,但如果我告诉数据库管理员在每个环境中手动执行此操作(特别是在生产环境中)是有风险的。

如果存在语法: 在 TABLEName 上添加 FIELD 字段名... 为什么没有 修改 TABLEName 上的 FIELD filedName...?

巴特克。

【讨论】:

  • 您可以使用编辑器创建或修改 .df 文件,甚至可以使用程序构建一个。但是语法是无证的——你自己去尝试弄清楚。有些东西是简单而明显的。其他位没有那么多。
【解决方案3】:

以防万一 - 以下是 OE 11.3 中 .df 文件的一些工作示例(它们可能在其他版本中也有效):

  • 重命名列:

    RENAME FIELD "OldName" OF "TableName" TO "NewName"

  • 其他属性:

    UPDATE FIELD "FieldName" OF "TableName"

    FORMAT "Yes/No"

    LABEL "Label"

    VALMSG "Validation message..."

当然必须先关闭数据库(在单用户模式下应用这些更改)。

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多