我有一个main数据库和report数据库,我需要从同步表main成report.
但是,当一个项目在main数据库中被删除时,我只想IsDeleted在report数据库中设置一个标志.
这样做的优雅方式是什么?
我目前正在使用MERGE语句,如下所示:
MERGE INTO report.TEST target
USING (SELECT * FROM main.TEST) source
ON (target.ID = source.ID)
WHEN MATCHED THEN
UPDATE SET (target... = source...)
WHEN NOT MATCHED THEN
INSERT (...) VALUES (source...)
;
Run Code Online (Sandbox Code Playgroud)
该WHEN NOT MATCHED语句为我提供了所有新值main,但我也希望更新所有OLD值report.
我正在使用Oracle PL/SQL.
伙计们,
我正在尝试使用Team City.我完成了7个中的6个步骤.现在最后一步,在" Agent Requirements" 选项卡下,它显示以下消息
代理兼容性
在本节中,您可以看到哪些代理与要求兼容,哪些不符合要求.没有代理商注册.
为什么会显示此消息?有解决方案吗
或者更确切地说,如何注册代理?
编辑:我已经通过MS Windows Installer安装了代理,但它仍然向我显示相同的上述消息
截图:
终于设法得到这个输出:)

我有以下的HTML:
<div class="box">
long text here
</div>
Run Code Online (Sandbox Code Playgroud)
和css:
.box {
width: 400px;
height: 100px;
overflow: auto;
border: 1px gold solid;
}
Run Code Online (Sandbox Code Playgroud)
我只想要一个垂直滚动.但是当一个单词太长时,会显示一个水平滚动.如何使长词包裹?
如果需要,我可以使用jQuery或PHP的技巧,但我想用CSS解决它,因为它是CSS的工作.
你可以在这里弄乱:http://jsfiddle.net/879bc/1/
我有下表:
TestTable
ColumnA
Column1
Column2
Column3
Column4
Run Code Online (Sandbox Code Playgroud)
我想编写一个简单的SQL语句来检查ColumnA,并根据它是否为null返回某些列.
像(伪)的东西:
If ColumnA Is Null
SELECT ColumnA, Column1, Column2
FROM TestTable
Else
SELECT ColumnA, Column3, Column4
FROM TestTable
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正面临一个非常烦人的问题.我写了(在Notepad ++中)一些SQL脚本.现在,当我尝试通过SQL*Plus(通过命令行,在Windows 7上)执行它们时,我收到的错误就像ORA-00933: SQL command not properly ended.
然后我将脚本复制并粘贴到SQL Developer工作表窗口,点击Run按钮,脚本执行时没有任何问题/错误.
经过长时间的调查,我开始认为SQL*Plus有一些问题,包括一些它不理解的空格(包括换行符和制表符).
由于我假设SQL Developer知道如何摆脱奇怪的空白,我试过这个:将脚本粘贴到SQL Developer工作表窗口中,然后从那里复制并将其粘贴回SQL脚本中.这解决了一些文件的问题,但不是所有文件.有些文件在没有明显原因的地方继续显示错误.
你有过这个问题吗?我该怎么做才能通过SQL*Plus通过命令行运行这些脚本?
更新:
一个脚本示例,该脚本不能与SQL*Plus一起使用但是与SQL Developer一起使用:
SET ECHO ON;
INSERT INTO MYDB.BOOK_TYPE (
BOOK_TYPE_ID, UNIQUE_NAME, DESCRIPTION, VERSION, IS_ACTIVE, DATE_CREATED, DATE_MODIFIED
)
SELECT MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Book-Type-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, 'Description-' || MYDB.SEQ_BOOK_TYPE_ID.NEXTVAL, A.VERSION, B.IS_ACTIVE, SYSDATE, SYSDATE FROM
(SELECT (LEVEL-1)+0 VERSION FROM DUAL CONNECT BY LEVEL<=10) A,
(SELECT (LEVEL-1)+0 IS_ACTIVE FROM DUAL CONNECT BY LEVEL<=2) B
;
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
SQL> SQL> SET ECHO ON;
SQL>
SQL> INSERT INTO MYDB.BOOK_TYPE (
2 …Run Code Online (Sandbox Code Playgroud) 我有以下查询.当type_id is null我希望它按名称"未知"分组时.
我该怎么做.
我知道有一个解码功能,但我不知道如何使用它.
select type_id,
name
from test_table
group by decode(type_id,'Unknown'),
name;
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
PL/SQL中双角括号中单词的含义是什么,例如.<<word>>?
我试图做谷歌搜索,但谷歌跳过标点符号.
它是干什么用的?
在SQL中,我有一个DATE变量,我想要舍入到下一个可用的半小时(即xx:30).请注意,这不应该是最近的半小时.
这里有些例子:
Time Expected outcome
2012-03-26 11:25 AM 2012-03-26 11:30 AM
2012-03-26 11:45 AM 2012-03-26 12:30 PM
Run Code Online (Sandbox Code Playgroud)
有没有办法在SQL中执行此操作?
我想用三个表的联合创建视图.但在结果查询中,我想要一个额外的列,如'tableId'.
我的代码就像
CREATE OR REPLACE VIEW DETAILS
AS SELECT
* FROM
(
SELECT
T1.ID,
T1.AMOUNT,
T1.STATUS,
T1.ADDEDBY,
T1.ADDEDON
FROM Table1 T1
UNION ALL
SELECT
T2.ID,
T2.AMOUNT,
T2.STATUS,
T2.ADDEDBY,
T2.ADDEDON
FROM Table2 T2
UNION ALL
SELECT
T3.ID,
T3.BILLAMOUNT,
T3.STATUS,
T3.ADDEDBY,
T3.ADDEDON
FROM Table3 T3
);
Run Code Online (Sandbox Code Playgroud)
这给了我所需的三个表的联合.但是如何在结果输出中获得表Id列?此列不存在于三个表中的任何一个中.
我们有一个用C和Pro*C编写的应用程序,它使用主机阵列和批量插入将日志文件中的数据插入到Oracle 11.2数据库中.这使用APPEND和NOLOGGING提示来利用直接路径插入并减少生成的重做量.NOLOGGING这是有道理的,因为它是一个临时的临时表,如果需要,可以从日志文件中恢复数据.
我们试图在Java中复制此功能,但无法使用大量记录的直接路径插入.这可能是Java/JDBC吗?
我尝试和调查过的事情是:
APPEND_VALUES提示.这听起来很有希望,但没有多大意义,因为JDBC批处理似乎并没有实际执行许多记录的"数组"插入.据我所知,直接路径插入仅支持子查询语法,而不支持VALUES子句.这不能用作数据库中尚不存在的要插入的数据.
我一直无法找到任何Java能够使用Pro*C使用的主机数组样式加载的引用.
顺便说一句,我们正在调查外部表加载或SQL*加载器,并了解这些工具能够直接路径加载,但这个问题实际上是关于是否可以从Java直接路径插入获得明确的答案.了解Java API的局限性不仅对此项目有用,而且对将来的项目也很有用.
所以重申这个问题,有没有办法可以利用Java中的直接路径插入?
相关问题: