我希望从一个在Oracle中返回多行的查询返回带有逗号分隔的值列表的单行,实质上是将返回的行展平为单行。
在PostgreSQL中,这可以使用数组和array_to_string函数来实现,如下所示:
给定表"people":
id | name
---------
1 | bob
2 | alice
3 | jon
SQL:
select array_to_string(array(select name from people), ',') as names;
将返回:
names
-------------
bob,alice,jon
如何在Orac
在安装了odac和oracle客户端12.2之后,我使用system.data.oracleClient通过visual studio 2015测试了oracle连接,我的oracle db版本是9i,连接在visual studio 2015上运行良好,但是当我将它作为webpart部署到sharepoint 2016时,它会出错,而它的工作在sharepoint2010中会很好。问题就在sharepoint2016中,我使用.net框架4.5
我不明白它是如何在visualstudio中工作的,而在SharePoint2016中,错误是Error=ORA-03134:不再支持到此服务器版本
请在标记为重复之前,请阅读最后几段.
在Oracle9i数据库中,此查询以0.18秒运行。
select
count(*)
from
dba_synonyms s,dba_objects t
where
s.TABLE_OWNER = t.OWNER(+) and
s.TABLE_NAME = t.OBJECT_NAME(+) and
s.DB_LINK is null and
t.OWNER is null;
...but这一个运行在一个可怕的120秒!:
select
count(*)
from
dba_synonyms
我得到了以下错误:
Exception in thread "main" java.sql.SQLException:
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jd
编辑9-3-10:我最近发现这篇博客文章很有启发性。
有时候,一种或另一种联接语法实际上执行得更好。我还发现,当选择Oracle join语法而不是ANSI语法时,会发现性能略有提高(仅在VLDB中很明显)。也许这还不足以让人过于挑剔,但对于那些认真掌握Oracle DB的人来说,回顾一下这篇文章可能会有所帮助。
我知道Oracle有两个外部联接语法:
select a, b
from table1
left outer join table2
on table2.foo = table1.foo
或
select a, b
from table1, table2
where table2