我有一个DB2数据源和一个Oracle12c目标。Oracle有一个到定义的DB2的DB链接,该链接一般都在工作。
现在,我在DB2中有了一个巨大的表,其中有一个时间戳列(让我们称之为ROW_CHANGED),用于行更改。我想检索在特定时间后已更改的行。
正在运行
SELECT * FROM lib.tbl WHERE ROW_CHANGED >'2016-08-01 10:00:00'
在DB2上,在大约90秒后准确地返回一行,这很好。
现在,我通过db链接尝试来自Oracle的相同查询:
SELECT * FROM lib.tbl@dblink_name WHERE
我有一个在PL/SQL中非常有效的查询,在这个查询中,我要求用户输入一个日期,其中说:
select * from X (X is a table in a database called DATABASE which I am connected to)
where date_=TO_DATE('&Enter_Date','YYYY-MM-DD')
我尝试使用以下方法在Python和cx_Oracle中复制它:
import cx_Oracle
db2 = cx_Oracle.connect('/@DATABASE')
positio
我的应用程序有两个环境,其中一个环境使用DB2和Oracle。我正在使用一些现有的SQL,因为它是一个旧的应用程序,要删除一个具有级联效果的表,现有的SQL就像- drop table xyz级联约束;
上面的SQL是为Oracle编写的,现在我想为DB2编写类似的SQL,我可以用什么来代替级联约束?
我试图在oracle中创建一个视图,这个视图已经在DB2中定义,在DB2视图中,所有日期列都有cast函数,下面我通过从视图中获取一个日期列来创建一个视图。注意:COBDATE列具有与设计相同的number数据类型。我得到ORA-00936:缺少表达式错误。
Create View MYVIEWV1 as (Select
A.COBDATE ,
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
(case when (COBDATE = 0)
then CAST(NULL AS DATE)
else
date(SUBSTR(C
日期没有正确插入到表格中,有什么解释/解决方法吗? create table test
(
ID bigint,
MarketOpen datetime
);
insert into test (ID, MarketOpen)
values (1, 2019-01-19-11-40-00);
select * from test; Fiddle
如何将这条旧的oracle SQL语句转换为符合ANSI98的DB2: SELECT
O.OBJECT_NAME AS OBJECT_NAME,
ATT.ATTRIBUTE_NAME AS ATTRIBUTE_NAME,
(CASE WHEN R.RULE_NAME = 'LAST_UPDATE' THEN 1
WHEN R.RULE_NAME = 'SOURCE_SUPREMACY' THEN 2
ELSE 3 END)
ID_RULE,
RD.SRC_CODE,
我不喜欢db2控制台输出
db2 => SELECT city,SUM(sales) as sum from offices group by city;
CITY SUM
----------------------------------------------------------------------------------------
我在DB2中有一个触发器,需要转换为ORACLE,但我不知道它在DB2中是如何工作的,所以我可以将它转换为ORACLE触发器,我认为它什么也不做。
CREATE TRIGGER ERRLOG_TRIGGER
NO CASCADE BEFORE INSERT
ON ERROR_LOG
REFERENCING
NEW AS NEWROW
FOR EACH ROW
BEGIN ATOMIC
SET NEWROW."ERRLOG_CREATEDON" = CURRENT TIMESTAMP;
END;
我看到日期更新了,但这是做什么用的?
我们正在通过Oracle 11gR2联合将数据从数据库中提取到db2 version 11.1.4.4中。除日期类型数据外,所有数据都被正确提取。
当会话连接到Db2并执行以下查询时,它第一次提供错误的日期数据。
但是,当我们在同一会话中再次执行它时,它将在此之后检索正确的日期数据。
db2:select PROCESS_TIME from test.ut fetch first 2 rows only
PROCESS_TIME
--------------------------
12=:-<=-90-00.00.00.000000
12=:-<=-90-00.00.00.
我必须将所有过程从Oracle迁移到DB2数据库。我想知道,如果作为甲骨文工作,如何在内部设置语法。
变量已在Oracle ps_iPkCooperativa中使用,并且正在接收0。
Oracle代码:
BEGIN
SELECT CCOOP
INTO ps_iPkCooperativa
FROM COOP
EXCEPTION
WHEN NO_DATA_FOUND
THEN ps_iPkCooperativa := 0;
END;
我如何在DB2中做到这一点?