标签: oracle

外键可以为NULL和/或重复吗?

请为我澄清两件事:

  1. 外键可以为NULL吗?
  2. 外键可以重复吗?

据我所知,NULL不应该在外键中使用,但在我的某些应用程序中,我能够NULL在Oracle和SQL Server中输入,我不知道为什么.

sql sql-server oracle foreign-keys

287
推荐指数
5
解决办法
35万
查看次数

在Oracle上使用内部联接更新语句

我有一个在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)

sql oracle inner-join ora-00933

280
推荐指数
7
解决办法
70万
查看次数

Oracle:如何UPSERT(更新或插入表?)

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语句,最好的方法是什么?

sql oracle merge upsert

277
推荐指数
9
解决办法
39万
查看次数

如何在不复制数据的情况下创建Oracle表的副本?

我知道声明:

create table xyz_new as select * from xyz;
Run Code Online (Sandbox Code Playgroud)

哪个复制结构和数据,但如果我只想要结构呢?

sql oracle copy database-table

269
推荐指数
5
解决办法
54万
查看次数

如何在Oracle中的表中找到重复值?

什么是最简单的SQL语句,它将返回给定列的重复值及其在Oracle数据库表中的出现次数?

例如:我有一个JOBS包含列的表JOB_NUMBER.我怎样才能知道我是否有任何副本JOB_NUMBER,以及它们被复制了多少次?

sql oracle duplicate-data

267
推荐指数
7
解决办法
69万
查看次数

内连接vs其中

是否存在性能差异(在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)

sql oracle performance

251
推荐指数
10
解决办法
11万
查看次数

在Oracle中进行多行插入的最佳方法是什么?

我正在寻找一种在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)

sql database oracle oracle9i sql-insert

245
推荐指数
6
解决办法
51万
查看次数

Oracle"Partition By"关键字

有人可以解释partition by关键字的作用并给出一个简单的例子,以及为什么人们会想要使用它?我有一个由其他人编写的SQL查询,我正在试图找出它的作用.

分区示例:

SELECT empno, deptno, COUNT(*) 
OVER (PARTITION BY deptno) DEPT_COUNT
FROM emp
Run Code Online (Sandbox Code Playgroud)

我在网上看到的例子似乎有点过于深入.

sql oracle window-functions

242
推荐指数
4
解决办法
42万
查看次数

Java JDBC - 如何使用服务名称而不是SID连接到Oracle

我有一个使用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是另一个数据库的服务名称.

我究竟做错了什么?

java oracle connection-string jdbc service-name

242
推荐指数
5
解决办法
55万
查看次数

240
推荐指数
3
解决办法
24万
查看次数