我有一个长期运行的(简化的)查询,如下所示:
BEGIN
FOR i in (SELECT * FROM T WHERE ....)
LOOP
DMBS_OUTPUT.PUT_LINE(i.VALUE);
END LOOP;
END;
/
当我执行它时,由于大的表和复杂的条件,它需要几个小时,并且我的sqldeveloper在该会话上基本上是冻结的。无法创建新连接,必须打开新的sqldeveloper实例。
有没有什么办法不阻止它呢?就像在后台运行,但仍然输出到控制台/文件?我知道我可以创建SQL脚本并从命令行界面运行,但我想知道sqldeveloper本身是否有任何解决方
我是Oracle SQL的新手,所以我对这个问题感到非常困扰。我的机器上安装了Oracle 11g、SQL Developer、sqlplus。我在sqldeveloper中创建了以下两个连接:
Connection Name Username Password
dbms SYSTEM maharshi
test SYSTEM maharshi
连接类型为basic,角色为default,主机名、端口和SID均为默认值。即localhost、1521、xe。
现在,当我们选择一个特定的数据库并在
奇怪的问题:
运行最新版本的Zend Server CE。Oracle XE和SQLDeveloper的本地安装。从SQLDeveloper到远程/本地数据库的连接非常完美。
从带有PHP/Zend Framework的Zend Server CE到本地Oracle XE的连接非常完美。但是将服务器连接到远程oracle db时,会出现类似"host not found“的错误。"tnsnames.ora“必须是正确的,因为SQLDeveloper可以很好地处理这些条目。
有什么想法吗?
我继承了一个大型数据库,似乎没有人知道特定数据集来自哪个表/列。我花了很多时间在Oracle的SQL Developer中逐个查找表,但我找不到它。在SQLDeveloper中有没有一种方法可以在整个表中搜索单个值。类似于:
select table_name from all_tab_columns where column_value='desired value';
db有大约1K+表,每个表都有很多列,所以手动梳理是行不通的。
有两个表:销售和交易。通过将这两个表连接到Netezza数据库中,我需要使用CASE更新Sales表的指示器列。
使用下面的查询但不工作。错误-已取消更新:尝试使用多个联接行的值更新目标行
Update Sales s
SET indicator =
CASE
WHEN t.retail >= s.PRICe then 'Y'
WHEN t.retail < s.PRICE then 'N'
ELSE NULL END
FROM TRANSACTION t
WHERE s.id = t.id a