进度 - 修改FIELD的语法

时间:2013-10-28 23:15:17

标签: database openedge progress-db

我通过

将字段添加到Progress databyse
ADD FIELD filedName on TABLEName...

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

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

  • UPDATE FIELD
  • MODIFY FIELD
  • ALTER FIELD

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

你可以用语法修改字段来帮助我吗?

3 个答案:

答案 0 :(得分: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方言。

答案 1 :(得分:0)

汤姆,谢谢你的回答。

我在Linux上使用OpenEdge Release 10.1A02。

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

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

鲍尔泰克。

答案 2 :(得分:0)

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

  • 重命名列:

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

  • 其他属性:

    UPDATE FIELD "FieldName" OF "TableName"

    FORMAT "Yes/No"

    LABEL "Label"

    VALMSG "Validation message..."

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