请为我澄清两件事:
据我所知,NULL不应该在外键中使用,但在我的某些应用程序中,我能够NULL在Oracle和SQL Server中输入,我不知道为什么.
我有一个在MySQL中工作正常的查询,但是当我在Oracle上运行时,我收到以下错误:
SQL错误:ORA-00933:SQL命令未正确结束
00933. 00000 - "SQL命令未正确结束"
查询是:
UPDATE table1
INNER JOIN table2 ON table1.value = table2.DESC
SET table1.value = table2.CODE
WHERE table1.UPDATETYPE='blah';
Run Code Online (Sandbox Code Playgroud) UPSERT操作更新或在表中插入一行,具体取决于表是否已有一行与数据匹配:
if table t has a row exists that has key X:
update t set mystuff... where mykey=X
else
insert into t mystuff...
Run Code Online (Sandbox Code Playgroud)
由于Oracle没有特定的UPSERT语句,最好的方法是什么?
我知道声明:
create table xyz_new as select * from xyz;
Run Code Online (Sandbox Code Playgroud)
哪个复制结构和数据,但如果我只想要结构呢?
什么是最简单的SQL语句,它将返回给定列的重复值及其在Oracle数据库表中的出现次数?
例如:我有一个JOBS包含列的表JOB_NUMBER.我怎样才能知道我是否有任何副本JOB_NUMBER,以及它们被复制了多少次?
是否存在性能差异(在oracle中)
Select * from Table1 T1
Inner Join Table2 T2 On T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
和
Select * from Table1 T1, Table2 T2
Where T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
?
我正在寻找一种在Oracle 9数据库中执行多行插入的好方法.以下内容适用于MySQL,但在Oracle中似乎不受支持.
INSERT INTO TMP_DIM_EXCH_RT
(EXCH_WH_KEY,
EXCH_NAT_KEY,
EXCH_DATE, EXCH_RATE,
FROM_CURCY_CD,
TO_CURCY_CD,
EXCH_EFF_DATE,
EXCH_EFF_END_DATE,
EXCH_LAST_UPDATED_DATE)
VALUES
(1, 1, '28-AUG-2008', 109.49, 'USD', 'JPY', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(2, 1, '28-AUG-2008', .54, 'USD', 'GBP', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(3, 1, '28-AUG-2008', 1.05, 'USD', 'CAD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(4, 1, '28-AUG-2008', .68, 'USD', 'EUR', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(5, 1, '28-AUG-2008', 1.16, 'USD', 'AUD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(6, 1, '28-AUG-2008', 7.81, 'USD', 'HKD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008');
Run Code Online (Sandbox Code Playgroud) 有人可以解释partition by关键字的作用并给出一个简单的例子,以及为什么人们会想要使用它?我有一个由其他人编写的SQL查询,我正在试图找出它的作用.
分区示例:
SELECT empno, deptno, COUNT(*)
OVER (PARTITION BY deptno) DEPT_COUNT
FROM emp
Run Code Online (Sandbox Code Playgroud)
我在网上看到的例子似乎有点过于深入.
我有一个使用JDBC(通过JPA)的Java应用程序,它使用主机名,端口和Oracle SID连接到开发数据库,如下所示:
JDBC:神谕:薄:@ oracle.hostserver1.mydomain.ca:1521:XYZ
XYZ是Oracle SID.现在我需要连接到不使用SID的不同Oracle数据库,而是使用Oracle"服务名称".
我试过这个,但它不起作用:
JDBC:神谕:薄:@ oracle.hostserver2.mydomain.ca:1522:ABCD
ABCD是另一个数据库的服务名称.
我究竟做错了什么?
oracle ×10
sql ×8
copy ×1
database ×1
foreign-keys ×1
inner-join ×1
java ×1
jdbc ×1
merge ×1
ora-00933 ×1
oracle9i ×1
performance ×1
service-name ×1
sql-insert ×1
sql-server ×1
sqldatatypes ×1
upsert ×1