我最近需要将.dmp导入我创建的新用户.我还使用以下命令为用户创建了一个新的表空间:
create tablespace my_tablespace
datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M
autoextend on
next 512K
maxsize unlimited;
Run Code Online (Sandbox Code Playgroud)
导入正在运行时出现错误:
ORA-01652 Unable to extend my_tablespace segment by in tablespace
Run Code Online (Sandbox Code Playgroud)
当我检查dba_data_files表中的数据文件时,我观察到maxsize大约是34gb.因为我知道数据库的一般大小,所以在将多个数据文件添加到表空间后,我能够毫无问题地导入.dmp.
当我添加的第一个数据文件设置为自动增长到无限大小时,为什么我需要向表空间添加多个数据文件?为什么最大尺寸为34gb而不是无限制?是否有34gb的硬帽?
我刚刚发现Oracle 12c支持将几个级别的查询关联起来,这在11g和以前的版本中是不受支持的.
select
*
from
tab1 a
where
not exists
(select
*
from
(select
*
from
tab2 b
where a.X = b.X))
Run Code Online (Sandbox Code Playgroud)
但我无法在Oracle网站上找到这个文档.是否有任何其他此类隐藏的SQL功能添加到Oracle 12c?在12c中对SQL的所有这些更改是否记录在某处?
我需要通过 Pl SQL Query 计算两个位置之间的距离。我试过一些 Qry 但没有得到它。
为此,我们在 SQL 中使用 Query 如下
SELECT ROUND(geography::Point(cast('19.2806118' as float),cast('72.8757395' as float) ,
4326).STDistance(geography::Point(cast('19.4482006' as float),
cast('72.7912511' as float), 4326))/1000,1) DIST
Run Code Online (Sandbox Code Playgroud)
结果:20.6
为了在 ORACLE Db 中计算相同的值,我在互联网上找到了一个解决方案,如下所示
select sdo_geom.sdo_distance(sdo_geometry(2001,4326,null,sdo_elem_info_array(1, 1, 1),
sdo_ordinate_array( 19.2806118,72.8757395)),sdo_geometry(2001,4326, null,sdo_elem_info_array(1, 1,
1),sdo_ordinate_array( 19.4482006,72.7912511)),1,'unit=KM') distance_km from dual
Run Code Online (Sandbox Code Playgroud)
结果:10.9271..
请建议在我获得 MS SQL 时会给我结果的方法
我有以下查询:
\n\nSELECT (CAST("META_SECT_ORDER" AS NVARCHAR2(3)) || \'#\' || "CODE") AS "SECTION"\nFROM "BMAN_TP2"."LOADER_TEMPLATE_SECTIONS"\nRun Code Online (Sandbox Code Playgroud)\n\nMETA_SECT_ORDER显然是整数,而CODE是字符串。
它输出 700 行,如下所示:
\n\nSECTION\n-------\n 0#F01\n 0#I05\n 1#I05\n 2#I05\nRun Code Online (Sandbox Code Playgroud)\n\nETC...
\n\n我知道这CAST不是必需的,但查询是由底层查询构建器组成的,该构建器也为 MsSQL Server 输出(其中CAST需要时)和 Postgres 输出。
奇怪的事实是,如果我提高NVARCHAR2我会得到不同的结果。例如:
当值 <= 80 时,我得到正确的结果(见上文)
值为 81,我得到 700 行\xec\xa5\xb4\xe1\x9e\x8b\xe9\x86\xb4\xe0\xb0\x80\xed\x89\xb6\xe0\xb5\x90\xe5\x87\xa8\xec\x93\xa5\xe6\x98\x81\xe8\x8f\x84\xe0\xa2\x8b\xe4\x96\xbc\xe8\xad\x95\xe8\xb2\x89\xe1\x82\x8b\xe4\x96\xbc\xe8\x8e\x80\xe9\x90\x8b
值为 82,我得到 700 行\xe0\xa8\x96\xe0\xac\x86
对于奇数值,在 [83-127] 中,我得到 700 个空行
对于偶数值,在 [84-128] 中,我得到 700 行\xda\xa2
值 >= 129,我得到 …
使用 Oracle JDK 1.7.0_51 运行 Ubuntu 12.04 amd64。
$ which javac
/usr/bin/javac
$ which java
/usr/bin/java
Run Code Online (Sandbox Code Playgroud)
当我尝试运行mvn install我的项目时,我收到这个漂亮的小错误:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.579s
[INFO] Finished at: Tue Mar 11 13:48:06 PDT 2014
[INFO] Final Memory: 18M/605M
Run Code Online (Sandbox Code Playgroud)
我相当确定我安装了编译器,但它看不到它。
JAVA_HOME被设定为/usr/lib/jvm/java-7-oracle。我需要为 JDK …
我对Oracle优化器中的这种行为感到很困惑.这与联合CTE的所有操作有关.如果有人有任何想法我都是游戏.
--Relevant data structures:
--t_positionperf (index: POSITIONPERF_X1 (account_id, hist_date, security_id)
--t_positionhist (index: POSITIONHIST_X1 (position_id, hist_date, hist_type)
-- PK_T_POSITIONHIST (hist_date, position_id, hist_type)
--v_positiontype (very simple "case-when" translation of a tiny lookup table)
with q as (
select
pp.position_id, pp.hist_date, pp.account_id, pp.income, pp.expense,
ph.position_type_id, ph.price, ph.quantity, ph.factor, ph.daily_accrual,
n.daily_accrual as new_daily_accrual, nvl(n.is_loan, v.is_loan) as new_is_loan
from
t_positionperf pp
left outer join t_positionhist ph
on pp.position_id = ph.position_id
and pp.hist_date = ph.hist_date
and ph.hist_type = 'O' --the 'O' join set from t_positionhist
left …Run Code Online (Sandbox Code Playgroud) 从我在上一小时所做的测试中可以看出,Oracle 最后(*)为 Windows 上的 Java JRE 包含了“xcopy 样式”包——即使是非服务器版本。
是的,我知道 gzip 压缩的 tar 文件是什么。这只是没有这些文件的完整性-与用于Windows可执行安装程序被记录在案。
查看当前非服务器 JRE 的Java 7或8 下载页面,我看到:
jre-7u67-windows-i586.tar.gz这些压缩文件似乎没有在我可以谷歌搜索的任何文档中提到,但它们的目的似乎是不必运行任何安装程序,只需将它们复制到机器上,正确设置路径,然后运行他们。(并运行它,我测试过)。
尽管如此,根本没有提及或文档似乎很奇怪。那么有没有官方提到这些tar.gz文件适用于Windows?据我从历史下载中可以看出,它们是在J7u9中引入的- 并且对于 Java 8 显然是 8u20。
(*) “终于”是相对的... J7u9 是 2012-10-16 的,所以它真的不是最近的,但我现在才开始研究让 J6 的东西在 J7/J8 上运行,所以很高兴看到那些现在。
官方Java代码约定文档 - 我可以得到 - 是1997年,似乎Oracle没有它的更新版本.
Oracle实际上在约定页面上声明:
此页面上的信息仅适用于存档目的
此页面未被主动维护.文档中的链接可能不起作用,信息本身可能不再有效.该文件的最新修订版于1999年4月20日作出
是否有更新的官方或至少事实上的官方公约?
注意:我不要求在这里讲好或最好的约定,我问了更新的标准或者在如果任何事实上的标准.所以,答案不应该是基于意见的答案.
此查询是否使用正确的Oracle语法?
select * from ( ( ( dual a) ) ) where a.dummy = 'X';
Run Code Online (Sandbox Code Playgroud)
它适用于11g和12c,但它是真正有效的语法吗?或者这只是一个编译器"错误",将来可能会修复,导致代码失败?
我怀疑这是正确的语法,原因如下:
我担心这一点,因为有类似的情况,无效语法在一个版本中起作用,然后在下一个版本中失败.例如:select (select count(*) from (select * from scott.emp where ename = dual.dummy)) from dual;.该查询在10.2.0.1.0中有效,但在更高版本中停止工作,因为表引用的范围仅限于一个级别.
原始查询的样式很糟糕,但除非存在真正的问题,否则不值得更改我们的生产查询.
查询无效吗?或者是否存在某种合法的语法原因,或者在语法图中是否存在一些我遗漏的路径?
使用Oracle Advanced Queuing方法时,我在Oracle SQL Server上遇到了一个非常奇怪的行为(确切地说:Oracle Database 11g企业版11.2.0.4.0版 - 64位生产版).
错误是我排队X消息,但dequeue_array返回X + 1消息,第一条消息重复(如MessageId所示).
我能够编写一些简单的PoC来重现错误.本代码非常简单,入队/出队的东西是标准的Oracle AQ.代码执行以下步骤两次(测试运行):
在新连接上运行POC时,第一次运行成功而没有错误,但每次后续运行都失败.之后,当使用相同的连接时,每次执行脚本时,它都会在两次测试运行中失败.
我既不能解释这种行为,也不能在我的代码中找到错误.请看一下它,它应该可以在你最喜欢的sql客户端中直接执行(用PL/SQL Developer测试).
如果您需要任何进一步的信息或在让PoC工作时遇到问题,请问,我会定期检查这个帖子.我试图使PoC尽可能可读,包括关于正在发生的事情的详细输出.
declare
C_QueueName constant varchar2(32767) := 'TEST_QUEUE';
C_QueueTable constant varchar2(32767) := 'TEST_Q_TABLE';
C_MsgCount constant pls_integer := 1;
C_TestRuns constant pls_integer := 2;
C_DequeueArraySize constant pls_integer := 10;
/*
* Create the queue and the queue table used for theses tests …Run Code Online (Sandbox Code Playgroud) oracle ×7
oracle11g ×4
java ×3
oracle12c ×2
sql ×2
coding-style ×1
conventions ×1
geometry ×1
java-7 ×1
maven ×1
optimization ×1
oracle-aq ×1
oracle10g ×1
plsql ×1
tablespace ×1
union-all ×1
windows ×1