Plsql 从双行中选择作为一行?
从dual中选择多个字符串作为一列。我已经尝试过下面的解决方案,我可以接受它,使用PL/SQL宏添加“select from dual”相对容易。我想知道有没有其他方法可以做到这一点Plsql 从双行中选择作为一行?,plsql,plsqldeveloper,Plsql,Plsqldeveloper,从dual中选择多个字符串作为一列。我已经尝试过下面的解决方案,我可以接受它,使用PL/SQL宏添加“select from dual”相对容易。我想知道有没有其他方法可以做到这一点 select 'AAA' as code from dual union all select 'ABQ' from dual union all select 'ACA' from dual
select 'AAA' as code
from dual
union all
select 'ABQ'
from dual
union all
select 'ACA'
from dual
union all
from dual
对于单列查询,有一个。您需要的数据库类型是VARCHAR2表,有些数据库类型在oracle中始终存在,包括:
- SYS.KU$\u VCNT
- SYS.DBMS\u DEBUG\u VC2COLL
select * from table (SYS.KU$_VCNT ('AAA','ABQ','ACA'));
对于包含多个列的查询,需要专门为该查询创建一个类型,这不是一个有用的选项。但为了完整性,您可以这样做:
create type my_obj_t as object(n number, d date, c varchar2(100));
create type my_tab_t as table of my_obj_t;
select * from table (my_tab_t(my_obj_t(1,sysdate,'aaa'),
my_obj_t(2,date '2014-12-31','bbb'),
my_obj_t(3,sysdate+2,'bbb')));
您的示例中没有PL/SQL非常棒的回答Tony,谢谢。是否有其他用于数字、布尔值等的嵌入表类型?@AliArdaOrhan-我肯定有,但我目前不知道它们!