这是一个样本表数据
Fruit Number
Apple 1
Apple 2
Apple 3
Kiwi 6
Kiwi 10
我尝试连接表列值以获取以下内容
Fruit Number
Apple 1-2-3
Kiwi 6-10
有没有办法查询此或存储过程?像Concatenate over(partition by)之类的东西,我对存储过程了解不多。谢谢!
OP在Oracle 10g上运行 ,而 LISTAGG 在 11g第2版 中引入。
因此,在Oracle版本 11克之前, 那里LISTAGG
是不支持,你可以使用 ROW_NUMBER() 和
SYS_CONNECT_BY_PATH 功能。
SELECT fruit,
LTRIM(MAX(SYS_CONNECT_BY_PATH(number,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS fruits_agg
FROM (SELECT fruit,
number,
ROW_NUMBER() OVER (PARTITION BY fruit ORDER BY number) AS curr,
ROW_NUMBER() OVER (PARTITION BY fruit ORDER BY number) -1 AS prev
FROM table_name)
GROUP BY fruit
CONNECT BY prev = PRIOR curr AND fruit = PRIOR fruit
START WITH curr = 1;
切勿使用,WM_CONCAT
因为它是未记录的功能,并且已从12c版本中删除。
曾经依赖wm_concat
功能的任何应用程序一旦升级到,都将无法工作12c
。从那以后,它已被删除。请参阅为什么不在Oracle中使用WM_CONCAT函数?
SQL> select banner from v$version where rownum = 1;
BANNER
----------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
SQL> SELECT object_name
2 FROM dba_objects
3 WHERE owner='WMSYS'
4 AND object_name LIKE 'WM\_%' ESCAPE '\';
OBJECT_NAME
----------------------------------------------------------------------------
WM_REPLICATION_INFO
WM_RDIFF
WM_PERIOD
WM_PERIOD
WM_OVERLAPS
WM_MEETS
WM_LESSTHAN
WM_LDIFF
WM_INTERSECTION
WM_INSTALLATION
WM_GREATERTHAN
WM_EVENTS_INFO
WM_ERROR
WM_ERROR
WM_EQUALS
WM_DDL_UTIL
WM_DDL_UTIL
WM_CONTAINS
WM_COMPRESS_BATCH_SIZES
WM_COMPRESSIBLE_TABLES
20 rows selected.
SQL>
您将收到`` 无效标识符 ‘’错误:
SQL> SELECT banner FROM v$version;
BANNER
----------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE 12.1.0.1.0 Production
TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 - Production
SQL> SELECT deptno, wm_concat(ename) FROM emp;
SELECT deptno, wm_concat(ename) FROM emp
*
ERROR at line 1:
ORA-00904: "WM_CONCAT": invalid identifier
因此,没有必要依赖 未记录的功能 ,而该 功能 在最新版本中不再可用。
基于Oracle文档,我创建了一个钱包 添加凭证 在我的java应用程序中,我想通过这个钱包连接到数据库 但我不知道如何填充连接字符串。我不想使用tnsnames。谢谢
我想通过R从SQL数据库导入数据。我尝试了太多次(几乎6小时)连接到服务器。我运行这些命令,它显示错误:- jdbcDriver jdbc连接 我认为是司机的问题,但我无法解决。
这是我的代码: 如何根据爱好对学生进行分组。我尝试了以下代码: 它没有给出正确的答案。
过程是一组可以按名称调用的PL/SQL语句。 调用规范指定java方法或第三代语言例程,以便可以从SQL和PL/SQL调用它。 创建过程 语法 以下是创建过程必须定义的三种类型的语句。 :这是一个默认参数,它将值传递给子程序。 :必须指定,它向调用者返回一个值。 :必须指定,它将初始值传递给子程序并将更新的值返回给调用者。 Oracle创建过程示例 在此示例中,将在表中插入记录,所以需要先创建表。
本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果
我有一个Spring Boot应用程序,当它以经典的方式连接到Oracle实例时,它可以很顺利地工作: 但是,当我通过存储在本地驱动器“C:\Oracle\Client11g\Network\Admin”中的TNSnames.ora转到tns连接时,有些东西不起作用,我会得到以下异常: 下面是我的application.properties+application-oracleprod.prope