Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中匹配用户定义的数据类型_Sql_Oracle_Varray - Fatal编程技术网

如何在SQL中匹配用户定义的数据类型

如何在SQL中匹配用户定义的数据类型,sql,oracle,varray,Sql,Oracle,Varray,我有一个用户定义的数据类型CRM\u id: create or replace TYPE CRM_IDS AS VARRAY(10) OF VARCHAR(32); CREATE TABLE "PE_REG"."PURECOV_SUMMARY" ( ... "NAV_CRM_ID" "PE_REG"."CRM_IDS" , ... ) 在我的表purecov\u summary中,NAV\u CRM\u ID列的数据类型为CRM\u ID: create or re

我有一个用户定义的数据类型
CRM\u id

create or replace TYPE CRM_IDS AS VARRAY(10) OF VARCHAR(32);
CREATE TABLE "PE_REG"."PURECOV_SUMMARY"
(
    ...
    "NAV_CRM_ID" "PE_REG"."CRM_IDS" ,
    ...
)
在我的表
purecov\u summary
中,
NAV\u CRM\u ID
列的数据类型为
CRM\u ID

create or replace TYPE CRM_IDS AS VARRAY(10) OF VARCHAR(32);
CREATE TABLE "PE_REG"."PURECOV_SUMMARY"
(
    ...
    "NAV_CRM_ID" "PE_REG"."CRM_IDS" ,
    ...
)
当我使用以下命令选择第一行的导航crm\U id时:

select nav_crm_id 
from purecov_summary 
where rownum = 1
我可以获得
“PE\u REG.CRM\u ID('10035005')”

但当我跑步时:

select * 
from purecov_summary 
where nav_crm_id = PE_REG.CRM_IDS('10035005')
我得到这个错误:

ORA-00932:不一致的数据类型:应为-获得PE_REG.CRM_ID
93200000-“不一致的数据类型:应为%s获得%s”
*原因:
*行动:
第1行第37列出现错误


如何使用
PE\u REG.CRM\u id
类型进行选择?

诀窍是使用
表中的嵌套varray列(
nav\u CRM\u id
)关键字作为
表(nav\u CRM\u id)
。因此,请考虑以下之一:

select p.* 
  from purecov_summary p 
 where exists (select column_value from table(p.nav_crm_id) where column_value = '10035005') 

select p.*
  from purecov_summary p
  join table(p.nav_crm_id) c
    on c.column_value = '10035005';