小编ric*_*ics的帖子

如何将多行组合到Oracle中以逗号分隔的列表中?

我有一个简单的查询:

select * from countries
Run Code Online (Sandbox Code Playgroud)

结果如下:

country_name
------------
Albania
Andorra
Antigua
.....
Run Code Online (Sandbox Code Playgroud)

我想在一行中返回结果,所以像这样:

Albania, Andorra, Antigua, ...
Run Code Online (Sandbox Code Playgroud)

当然,我可以编写一个PL/SQL函数来完成这项工作(我已经在Oracle 10g中完成了),但是对于这个任务是否有更好的,最好是非特定于Oracle的解决方案(或者可能是内置函数) ?

我通常会用它来避免子查询中的多行,所以如果一个人有一个以上的公民身份,我不希望她/他在列表中是重复的.

我的问题是基于SQL Server 2005上的类似问题.

更新:我的功能如下:

CREATE OR REPLACE FUNCTION APPEND_FIELD (sqlstr in varchar2, sep in varchar2 ) return varchar2 is
ret varchar2(4000) := '';
TYPE cur_typ IS REF CURSOR;
rec cur_typ;
field varchar2(4000);
begin
     OPEN rec FOR sqlstr;
     LOOP
         FETCH rec INTO field;
         EXIT WHEN rec%NOTFOUND;
         ret := ret || field || sep;
     END LOOP;
     if length(ret) …
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot concatenation string-aggregation

101
推荐指数
5
解决办法
38万
查看次数

机器人仿真环境

我想列出一系列卓越的机器人仿真环境,包括它们的优缺点.我所知道的一些例子是WebotsPlayer/Stage.

simulation environment robotics

14
推荐指数
3
解决办法
4147
查看次数

基于代理的建模资源

我想知道基于代理的建模存在哪种工具包,语言,库以及它们的优缺点是什么?

我想到的一些例子是 Swarm,RepastMASS.

modeling multi-agent toolkit agent-based-modeling

10
推荐指数
2
解决办法
2516
查看次数

如何处理长时间运行的系统的旧的,过时的数据库数据?

程序员处理很少使用但不能简单删除的数据的可能性有多大,因为至少报告仍需要它?

我想到的一些例子:

  • 折扣资助类型的大学老年
  • 未使用的货币(例如意大利里拉)
  • 失踪国家的名称(例如,奥匈帝国,苏联)

一些部分解决方案是活动标记,活动周期,可视化的优先级,但每个都意味着逐案决策,很难知道哪种类型的实体需要这种特殊处理.

可能是这个问题的设计模式.

结论:(根据目前的答案)

  • 如果旧数据使大型数据库的日常工作变得困难,那么分区将会很有帮助.Oracle对此主题的描述就在这里.

  • 从设计者的角度来看,缓慢变化维度的分类提供了一些背景信息.

database-design

9
推荐指数
1
解决办法
2084
查看次数

如何登录Oracle数据库?

我对Oracle数据库中常见的日志记录方法感兴趣.我们的方法如下:

我们为要记录的表创建一个日志表.日志表包含原始表的所有列以及一些特殊字段,包括时间戳,修改类型(插入,更新,删除),修饰符的id.原始表上的触发器为每个插入和删除创建一个日志行,为修改创建两行.日志行包含更改原始行之前和之后的数据.

虽然使用此方法可以及时挖掘记录的状态,但它有一些缺点:

  • 在原始表中引入新列不会自动涉及日志修改.
  • 日志修改会影响日志表和触发器,很容易搞砸.
  • 无法以直接的方式确定特定过去时间的记录状态.
  • ...

还有其他可能性吗?可以使用哪种工具来解决这个问题?

我只知道log4plsql.这个工具的优点/缺点是什么?

编辑:根据Brian的回答,我找到了以下参考资料,解释了标准和细粒度审核.

database oracle logging

6
推荐指数
1
解决办法
1万
查看次数

在事务数据库中撤消

我不知道如何使用事务数据库实现用户友好界面的撤销属性.

一方面,建议用户拥有,因为它是说多(无限)撤销的可能性在这里的答案.可能有助于此问题的模式是MementoCommand.

但是,使用包含触发器,不断增长的序列号和不可逆转的过程的复杂数据库,很难想象撤消操作如何在不同于事务边界的点处起作用.换句话说,撤消到最后一次提交的事务只是回滚时,但是如何回到不同的时刻呢?

更新(基于到目前为止的答案):我不一定希望撤消在修改已经提交时有效,我将专注于具有开放事务的正在运行的应用程序.每当用户点击保存时,它意味着提交,但在保存之前 - 在同一事务期间 - 撤消应该有效.我知道使用数据库作为持久层只是一个实现细节,用户不应该为此烦恼.但是,如果我们认为"在数据库和GUI中撤消的想法是根本不同的东西",并且我们不对数据库使用撤销,那么无限撤消只是一个流行语.我知道"回滚是......不是用户撤消".

那么如何在同一个事务中给出"由于任何更改而产生的级联效果",实现客户端级撤销?

undo interface-implementation transactional-database

3
推荐指数
1
解决办法
2578
查看次数

用于简单文本的CSS工具提示

我想在具有以下约束的网页中使用工具提示:

  • 工具提示应该使用简单的文本,而不仅仅是锚点.
  • 我不想使用javascript,只有css.
  • 我想至少在Firefox和Internet Explorer中使它工作.

一个有希望的候选人是Eric Meyer的解决方案,但它使用锚点.Loadaveragezero的解决方案使用span作为简单文本,但它在Internet Explorer中不起作用.

我正在寻找一个工作代码示例或具有上述参数的解决方案的链接.

html css tooltip

1
推荐指数
1
解决办法
2756
查看次数