1

谁能帮我理解这个查询?mktpgmvhclxref.mktpgmvhclxrefId.mktgPgm大部分是部分。一般是这样,table_name.columnName但这里的格式似乎不同

SELECT mktpgmvhclxref.mktpgmvhclxrefid.mktgpgm, 
       mktpgm.mktgpgm, 
       mktpgmvhclxref.cmpgn, 
       campaign.cmpgndescription, 
       mktpgmvhclxref.mktpgmvhclxrefid.vhcl, 
       vhclhierarchy.modname, 
       mktpgmvhclxref.mktpgmvhclxrefid.modyr, 
       mktpgmvhclxref.userinsrt, 
       mktpgmvhclxref.rowinsrt 
FROM   mktpgmvhclxref mktpgmvhclxref, 
       mktpgm mktpgm, 
       vhclhierarchy vhclHierarchy, 
       campaign campaign 
WHERE  mktpgmvhclxref.mktpgmvhclxrefid.mktgpgm = mktpgm.idmktgpgm 
       AND mktpgmvhclxref.cmpgn = campaign.campaignid 
       AND mktpgmvhclxref.mktpgmvhclxrefid.vhcl = vhclhierarchy.vhcl 
4

3 回答 3

4

通常,第一个标识符是架构/数据库名称,具体取决于您的数据库:

[schema].[table].[column]

在大多数数据库中[schema],如果名称明确[table],则限定符是可选的。[column]

但是,在您的情况下,我怀疑这是实际情况,因为您的条款mktpgmvhclxref中的表格也是如此。FROM例如,Oracle 也知道用户定义的类型(UDT,OBJECT类型)。所以我猜测:

mktpgmvhclxref.mktpgmvhclxrefid.mktgpgm

对应于

mktpgmvhclxref   = table
mktpgmvhclxrefid = column
mktgpgm          = UDT attribute

如果您使用的是 Oracle,您可能会这样找到您的 UDT:

select * 
from all_type_attrs 
where (owner, type_name) = ((
  select data_type_owner, data_type
  from all_tab_cols
  where table_name = 'MKTPGMVHCLXREF'
  and column_name = 'MKTPGMVHCLXREFID'
))
order by attr_no
于 2012-10-25T10:23:31.937 回答
1
mktpgmvhclxref.mktpgmvhclxrefId.mktgPgm
[--Schema----].[----table-----].[Column]
于 2012-10-25T10:25:10.627 回答
1

我得到了我的问题的答案。它与休眠映射有关。第二个字段实际上是一个表的复合键。

于 2012-10-30T10:02:42.287 回答