【问题标题】:SELECT all of a user-defined datatype/structure选择所有用户定义的数据类型/结构
【发布时间】:2011-08-06 16:41:31
【问题描述】:

是否有在 SYBASE 10 中选择用户定义数据类型/结构的所有组件的快捷方式?

因此,如果 Resrv 是基于用户定义的数据类型/结构的字段,则类似于:

 SELECT Name, Resrv from AGC_AREAPARM

(这不起作用)

注意:SELECT Name, * from AGC_AREAPARM 也不起作用。

工作是指定每个子项,例如:

 SELECT Name, Resrv.SysReqOper, Resrv.SysReqSpin from AGC_AREAPARM

编辑:如果有人能给我正确的结构措辞,那就太好了。我很难在 Sybase 文档中找到它。

这是sp_helptype 输出的一些图片,AGC_RESERVE 是 Resrv 字段的类型:

【问题讨论】:

  • 不熟悉 Sybase,但是SELECT Name, Resrv.* FFROM AGC_AREAPARM 有用吗?
  • @Lance:谢谢。就像我说的,不熟悉 Sybase;这就是为什么它不是一个答案。不过,值得一试。 :)
  • 您使用的不是用户定义的类型(如使用sp_addtypeCreate DomainCreate DataType 创建的类型)。它一定是别的东西。也许是 Xml?
  • @Thomas,不,它是 pre-XML。它就像某些编程语言中的结构。这是一个父母有多个孩子。当我对其进行 sp_helptype 时,它​​说“种类”是“结构”。然后将孩子列为“字段”。
  • @Lance Roberts - 我明白它的行为方式。但是,创建域/数据类型功能不允许多个属性。它只是现有系统数据类型的掩码。您使用的是什么确切的 Sybase 产品? SQL Anywhere?

标签: sql sybase shortcut user-defined-types


【解决方案1】:

首先,您所看到的绝对不是通过Create DomainCreate DataType 谓词创建的。根据文档:

域是内置数据类型的别名,包括适用的精度和小数位数。它们提高了便利性并鼓励了数据库的一致性。 *

相反,我猜测您使用的是 Java 类(sp_helptype 显示为structure)。没有使用 Sybase SQL 方言以本机方式选择类的所有属性的机制。您必须在 Select 语句中明确声明它们:

Select Name
    , Resrv.SysRegOper
    , Resrv.SysRegSpin
From Table

【讨论】:

  • 虽然我不知道他们如何构建这个数据库的所有细节,但使用它的程序都是用 C 构建的。我可能会选择这个答案,因为我认为你是对的关于没有选择所有组件的机制。
猜你喜欢
  • 2018-07-25
  • 2019-11-21
  • 1970-01-01
  • 2019-01-03
  • 2014-09-08
  • 2013-03-18
  • 1970-01-01
  • 2011-07-05
  • 1970-01-01
相关资源
最近更新 更多