只听本周的播客,并认为将你的一些经验归为一类是很好的,你看到设计的"架构"方面比它应该更多地支配事物.
Java在这方面经常受到不好的压力,而且随着Java EE的复杂性增加,新闻越来越糟糕.2004年之后,我的Java体验时间图显着下降,所以我觉得没有资格发表评论.
我最近的经验是建筑师拼命想要在一组(关系)数据库表(恰好是Oracle)中准确地表示对象模型.结果是一个数据库模式,如果没有首先预加入一堆表(在物化视图中),就无法有效地进行查询.
我的记忆很糟糕.每当我在Oracle中执行CONNECT BY查询时 - 我的意思是每一次 - 我都要努力思考,通常通过试错来解决PRIOR应该去哪个参数.
我不知道为什么我不记得 - 但我没有.
有没有人有一个方便的记忆助记符,所以我永远记得?
例如:
走下来,从一个节点的树-很明显,我不得不看这件事:) -你做这样的事情:
select
*
from
node
connect by
prior node_id = parent_node_id
start with
node_id = 1
Run Code Online (Sandbox Code Playgroud)
所以 - 我从node_id
1 开始(分支的顶部),查询查找parent_node_id
= 1的所有节点,然后迭代到树的底部.
要向上移动树,先前对父进行:
select
*
from
node
connect by
node_id = prior parent_node_id
start with
node_id = 10
Run Code Online (Sandbox Code Playgroud)
因此,从某个分支开始(node_id = 10
在本例中)Oracle首先获取所有节点,其中所有节点parent_node_id
与node_id
10的节点相同.
编辑:我仍然错了,所以我想添加一个澄清的编辑来扩展已接受的答案 - 这是我现在记得的方式:
select
*
from
node
connect by …
Run Code Online (Sandbox Code Playgroud) 我最近注意到调用dbms_mview.refresh(...)来刷新Oracle中的物化视图,它有一个隐式提交.
任何想法 - 除了"因为它确实" - 为什么这个动作有一个隐含的提交?
我真的应该知道这一点,但有人会告诉我如何在Linux上更改默认数据库吗?
例如:
我有一个数据库test1
上server1
使用ORACLE_SID=test1
.所以,连接到test1
我可以使用:
sqlplus myuser/password
Run Code Online (Sandbox Code Playgroud)
连接到默认数据库, test1
我现在想将默认的sqlplus连接转到test2
服务器上的数据库server2
.
所以,我已经更新了tnsnames,以便旧test1
条目现在指向test2@server2
.我还为test2
这一点添加了一个单独的条目到同一个地方.但是,默认连接似乎仍然存在test1@server1
.
以下都工作得不错,去数据库test2
上server2
:
sqlplus myuser/password@test1
sqlplus myuser/password@test2
Run Code Online (Sandbox Code Playgroud)
但是默认连接sqlplus myuser/password
是test1@server1
.
有任何想法吗?
谢谢.
我正在尝试将unix托管的Mercurial存储库克隆到Windows计算机.我希望使用eol扩展,以便在克隆到Windows计算机时,服务器上带有LF结尾的文本文件具有CRLF.
以前我已经使用了win32text扩展程序,它运行良好,但由于普遍的共识似乎是eol扩展是要走的路,我想我会试一试.
在我的Mercurial.ini中
[extensions]
eol =
Run Code Online (Sandbox Code Playgroud)
我知道默认行为是在克隆时将LF转换为CRLF,但是我很明显错过了一些东西,因为每当我从Unix服务器克隆到Windows时,行结尾仍然是LF.
有任何想法吗?
我在以下情况下使用mercurial补丁: -
你怎么使用Mercurial Patch Queues?我觉得它是一个非常强大的Mercurial扩展,我并没有充分利用它.
我有一系列需要访问彼此数据的Oracle数据库.最有效的方法是使用数据库链接 - 设置一些数据库链接我可以从A到B获取数据,而且操作起来很少.对我来说问题是你最终得到了一个紧密耦合的设计,如果一个数据库出现问题,它可以将耦合数据库带入它(或者可能是这些数据库上应用程序的一部分).
您尝试了哪些替代方法在Oracle数据库之间共享数据?
几个回复后更新......
我没有想太多的复制,更多的是访问"主数据".例如,如果我有一个具有货币转换率的中央数据库,我想将费率提取到一个单独的数据库(应用程序).对于这样一个小型数据集,igor-db建议使用DB链接的物化视图可以很好地工作.但是,当您从非常大的数据集中动态采样时,本地缓存选项开始变得更加棘手.在这种情况下你会选择什么选择.我想知道一个XML服务,但是tuinstoel(在对le dorfier的回复的评论中)正确地质疑了所涉及的开销.
回复摘要......
总的来说,我认为igor-db是最接近的,这就是为什么我接受了这个答案,但我想我会添加一点来提出其他一些答案.
就我的目的而言,我只关注数据复制,看起来Oracle BASIC复制(而不是ADVANCED)复制对我而言.使用主站点上的物化视图日志和快照站点上的物化视图看起来是一种很好的前进方式.
如果这不是一个选项,也许数据卷使全表复制成为问题,那么消息传递解决方案似乎是最合适的Oracle解决方案.Oracle Advanced Queuing似乎是设置消息传递解决方案的最快捷,最简单的方法.
最不可取的方法似乎是自己动手的XML Web服务,但仅限于高级排队相对容易的选项.
我有以下非常标准的过程:
$(document).ready
.这包括将事件绑定到表中的元素.我现在需要将事件重新绑定到表格内容.有这样做的标准方法吗?即部分页面DOM更新$(document).ready
后是否存在等效的火灾?
谢谢.
我有一个运行进程的应用程序,我只希望一次运行一个进程.一些选项是:
使用对象锁定可防止后续进程运行.
这没关系,但我希望调用会话立即返回,而不是等待正在运行的会话完成.
使用自定义Y/N设置进程是否正在运行.
我在进程开始时设置了一个"Y"标志,并在完成或失败时将其设置为"N".也很好,但感觉我正在重新发明轮子,感觉不像是要走的路.如果运行会话被杀死,因为标志保持在"Y",它也会失败.
使用 dbms_application_info.set_module
这种方法看起来最强大,但如果我知道现有的运行进程,我认为我需要能够查询v$session
,我不希望这个应用程序具有如此广泛的访问权限.
有任何想法吗?
我已将Oracle数据库和Oracle HTTP服务器安装从32位计算机迁移到64位计算机 - 两台运行Linux的计算机.Oracle数据库是64位,但(Apache)HTTP服务器是32位.
我使用了一些非Oracle DSO(mod_ntlm为一个),但每当我运行标准的"make install"类型的东西时,我最终得到一个64位模块.
是否有一种在64位计算机上编译32位Apache模块的标准方法?
网站真的需要迎合没有启用Javascript的浏览器吗?
仅支持启用了Javascript的用户.
Javascript被禁用的常见程度
有多少人禁用了Javascript?
我已经开启和关闭了几年的Web应用程序,我写的每个应用程序似乎都有比前一个更多的javascript.
经常评论是:"但是,如果用户关闭Javascript怎么办?".
我明白了,但我从未见过用户这样做过.不止一次.
你呢?
oracle ×6
database ×2
linux ×2
mercurial ×2
32bit-64bit ×1
apache ×1
architecture ×1
eol ×1
java ×1
javascript ×1
jquery ×1
patch ×1
plsql ×1
sql ×1
sqlplus ×1
transactions ×1
unix ×1
windows ×1