我试图弄清楚如何在不使用触发器的情况下轮询对 Oracle 表所做的更改。我目前关心的唯一变化是新的/插入的记录。任何建议将不胜感激。
我也真的不想使用其他表来跟踪已更改的内容。
谢谢!
秒
SQL> select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dua
l;
select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01843: not a valid month
SQL> select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual;
select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual
*
ERROR at line 1:
ORA-01861: literal does not match format string
Run Code Online (Sandbox Code Playgroud)
做正确的方法是什么?
2010-12-14:09:56:53
minus
2010-12-14:09:56:46
Run Code Online (Sandbox Code Playgroud)
在Oracle SQL中?
SELECT *
FROM TAB1
LEFT JOIN TAB2 ON TAB2.ID_TAB1 = TAB1.ID
JOIN TAB3 ON TAB3.ID = TAB2.ID_TAB3;
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
FROM TAB1
LEFT JOIN (SELECT *
FROM TAB2
JOIN TAB3 ON TAB3.ID = TAB2.ID_TAB3) T
ON T.ID_TAB1 = TAB1.ID;
Run Code Online (Sandbox Code Playgroud) 我正在使用10g随附的Oracle Reports Builder设计一个新报告。我有许多列要水平插入。但是我无法将正文部分的页面宽度增加到超过8.5英寸。但是我可以看到一些现有报告的页面宽度超过16英寸。如何增加页面宽度?我已经搜查了一个小时,但找不到任何有用的信息。我尝试修改以下位置的设置:
文件->页面大小
工具->选项->保证金
编辑->首选项
但没有收获。
因此,任何帮助都将受到欢迎。谢谢。
我需要从许多触发器执行大量的DML.每个触发器调用私有过程来执行此操作是一个好主意吗?
我认为这会有点深奥,但想把它扔出去,万一有人试过这样的事情,或者如果某人已经尝试过并发现它是不可能的.
我们有一个表需要对某组列进行唯一性约束,但它也有一个"软删除"指示符.已标记为"已删除"的记录不应包含在唯一性检查中.
这一切都很好,我可以使用独特的基于函数的索引轻松解决这个问题.然而,使问题复杂化的是,如果我们要在数据库中实现这个约束,它必须是延迟约束,因为Hibernate的工作方式.如果无法完成,我们将不得不省略约束,而我根本不愿意.
例如:
CREATE TABLE jkemp_test
( id NUMBER NOT NULL
, deleted_ind CHAR(1) DEFAULT 'N' NOT NULL);
CREATE UNIQUE INDEX jkemp_test_funique
ON jkemp_test
(CASE WHEN deleted_ind = 'N' THEN id END);
-- make this use the function-based index, maybe?
ALTER TABLE jkemp_test
ADD CONSTRAINT jkemp_test_unique
UNIQUE (id)
DEFERRABLE INITIALLY DEFERRED;
INSERT INTO jkemp_test VALUES (1,'N');
INSERT INTO jkemp_test VALUES (2,'N');
COMMIT;
UPDATE jkemp_test SET deleted_ind='Y' WHERE id=1;
COMMIT;
-- depending on whether the constraint is deferred or not, …Run Code Online (Sandbox Code Playgroud) 我有一张表如下;
caravan_id, description, date_purchased, special_instructions, health&safety_check, notes
Run Code Online (Sandbox Code Playgroud)
health&safety_check 是一个日期字段。
如何对该表中的数据执行 SQL 查询,以返回health&safety_check超过 12 个月的所有行。但如果可能的话,基于 12 个月,而不是今天的日期,例如 < 10/12/2011
我有一个包含多个数据块的表单,所有字段都通过将其属性设置为数据库列名来绑定到数据库。每个块上的所有项目都显示在一个画布上。
表单上的项目包含个人数据,但是客户电话号码和地址等信息存储在一对多映射的单独表中,并由客户号码链接,它考虑到客户可以有很多电话号码和很多地址。
这里最大的问题是当用户处于查询模式并且在他们尝试离开块时输入了每个块的信息时,他们会收到一条消息,询问他们“您是否要保存更改”。每个块都会发生这种情况。所以这条消息出现了好几次。
我想要实现的是应该抑制此消息,以便用户仅被询问一次。我知道一旦用户回答是,我可以在每个块上 do_commit 进行更改保存。但是,我无法控制此消息,我想知道构建应用程序以避免这种情况的最佳方法。
看起来高低,我必须问... SQL Developer中的输出如何:
BUBBA GUY
P.O. BOX 123
YULEE, FL 32257
Run Code Online (Sandbox Code Playgroud)
在SQL*Plus中成为这样:
YULEE, FL 32257OX 123
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT FIRSTNAME || ' ' || LASTNAME || CHR(13) ||
ADDRESS || CHR(13) ||
CITY || ', ' || STATE || ' ' || ZIP || CHR(13) AS " "
FROM CITIZENS;
Run Code Online (Sandbox Code Playgroud)
我理解行/列/数据可能会被截断...但我对如何修改行中元素的顺序感到困惑?