Questions tagged «oracle»

所有版本的Oracle数据库。如果该上下文在问题中很重要,请添加特定于版本的标记,例如oracle-11g-r2。请勿用于Oracle产品(例如应用程序或中间件)或Oracle拥有的其他数据库产品(例如MySQL或BerkeleyDB)。

2
有没有一种方法可以将Oracle数据库导出到CREATE DATABASE命令?
我有一个现有的Oracle 11实例,我想将数据库(通过DBCA创建)导出到等效的“ CREATE DATABASE”命令,处理字符集等。我还想获取数据文件的列表,并创建同一数据库所需的表空间。我对保留单个架构对象不感兴趣。 我问是因为有DBMS_DDL包,它将为您提供DDL来重新创建任何表等。想知道在数据库级别是否存在类似的东西。 谢谢!

2
确定Oracle会话客户端字符集?
我知道数据库字符集(NLS_CHARACTERSET中的select * from v$nls_parameters;)和客户端字符集(客户端环境设置NLS_LANG)如何交互。 但是,我无法确定的是,对于已建立的会话,如何或是否可以确定Oracle认为当前客户端特征集是什么。 这有可能吗? 注:SELECT * FROM NLS_SESSION_PARAMETERS;不不包含字符集(上10G2)。 明确说明我要完成的工作: NLS_LANG在客户端环境中设置为任意值(例如GERMAN_GERMANY.WE8MSWIN1252) 数据库应用程序[*]启动并建立与Oracle数据库的连接/会话。 数据库应用程序[*]希望“询问” Oracle(而不是其OS环境)Oracle将承担的客户端字符集。 [*]:如果数据库应用程序是sqlplus,则示例如下所示: ... sqlplus /nolog connect user/pass@example *magic command*; CLIENT CHARACTERSET = ... 杰克的回答中提出了两个要点: 借助Oracle,谁做的字符集转换。它是客户端库代码还是在服务器端完成? 看起来是客户端,客户端需要公开此设置-客户端库/工具假定此设置是什么。是否可以查询任何Oracle客户端库/工具(sqlplus,OCI / OCCI,Pro * C等)?

2
SQL Server开发人员迁移到Oracle的资源
对于希望学习Oracle基础知识的SQL Server开发人员,您可以推荐哪些资源? 我正在寻找描述这些系统之间差异的全面白皮书或博客,并回答诸如“ 如何创建身份”列之类的问题。或什么数据类型等效于float?。

2
Oracle如何针对一个表处理多个并发INSERT
我试图更深入地了解Oracle 11g。我的问题很简单:Oracle如何处理试图同时将记录插入单个表的两个会话。 例如,INSERT A在表1的1:00 PM运行。它需要5分钟才能完成。INSERT B在表1上于1:02 PM执行。需要1分钟才能完成。 会发生什么?Oracle将在INSERT A完成之后将INSERT B排队等待执行吗?INSERT B是否将与INSERT A同时运行? 谢谢!
8 oracle  insert 

1
SQL Server无法将NULL存储在固定长度的列中吗?
我在Oracle官方文档中遇到了以下声明: 在Microsoft SQL Server中,只有具有可变长度数据类型的列才能存储NULL值。创建允许固定长度数据类型为NULL的列时,该列将自动转换为系统可变长度数据类型... 我从未在SQL Server文档中阅读过此书,也从未经历过这样的事情。相反:在SQL Server中,固定长度的数据类型(例如int和float,还包括char)被大量使用,并且即使可以为NULL时也非常有效地存储。 这个Oracle声明背后有什么根据吗?

2
为什么Oracle为补充unicode字符Chipmunk使用与Java不同的字节长度?
我有Java代码将UTF-8字符串修整为我的Oracle(11.2.0.4.0)列的大小,由于Java和Oracle将字符串视为不同的字节长度,最终引发了错误。我已经验证我NLS_CHARACTERSET在Oracle中的参数是“ UTF8”。 我编写了一个使用Unicode花栗鼠表情符号(🐿️)在下面说明我的问题的测试 public void test() throws UnsupportedEncodingException, SQLException { String squirrel = "\uD83D\uDC3F\uFE0F"; int squirrelByteLength = squirrel.getBytes("UTF-8").length; //this is 7 Connection connection = dataSource.getConnection(); connection.prepareStatement("drop table temp").execute(); connection.prepareStatement("create table temp (foo varchar2(" + String.valueOf(squirrelByteLength) + "))").execute(); PreparedStatement statement = connection.prepareStatement("insert into temp (foo) values (?)"); statement.setString(1, squirrel); statement.executeUpdate(); } …
8 oracle  java  utf-8  unicode 

3
在数字表上交叉连接以获得线顶点,是否有更好的方法?
问题: 我有一个空间表(路线),使用ESRI的SDE.ST_GEOMETRY用户定义数据类型存储在Oracle 12c 地理数据库中。我想列出线顶点,以便最终访问并更新它们的坐标。如果使用的是SDO_GEOMETRY / Oracle Locator,则可以使用该 SDO_UTIL.GETVERTICES功能。但是我没有使用SDO_GEOMETRY / Oracle Locator,并且中没有等效功能SDE.ST_GEOMETRY。我可以找到的与顶点有关的唯一SDE.ST_GEOMETRY 函数是ST_PointN和ST_NumPoints。 我想出一个可以成功完成所有操作的查询-将行顶点作为行(受此页面的启发): 1 SELECT a.ROAD_ID 2 ,b.NUMBERS VERTEX_INDEX 3 ,a.SDE.ST_X(SDE.ST_PointN(a.SHAPE, b.NUMBERS)) AS X 4 ,a.SDE.ST_Y(SDE.ST_PointN(a.SHAPE, b.NUMBERS)) AS Y 5 FROM ENG.ROADS a 6 CROSS JOIN ENG.NUMBERS b 7 WHERE b.NUMBERS <= SDE.ST_NumPoints(a.SHAPE) 8 --removed to do explain plan: ORDER …

1
如何从oracle中的两个表中获取分层数据?
我有两个表table1和table2,我需要通过连接两个表进行分层输出。 表1包含三个类别CAT1,CAT2和CAT3,其中一个外键即F_ID,它是另一个表table2的主键,表2中又包含一个列,即VAL。 TABLE 1 ----------------- CAT1 CAT2 CAT3 F_ID A a aa 1 A a ab 2 A b ba 3 A b bb 4 B c ca 5 B c cb 6 B d da 7 TABLE 2 ------------------- F_ID VAL 1 4 2 6 3 4 4 1 …

3
意外的CASE评估逻辑
我始终理解,该CASE声明基于“短路”原理,因为如果先前的步骤被评估为真,则不会进行后续步骤的评估。(此答案是SQL Server CASE语句评估所有条件还是在第一个TRUE条件下退出?是否相关,但似乎没有涵盖此情况,并且与SQL Server有关)。 在下面的示例中,我希望MAX(amount)根据开始日期和支付日期之间有多少个月的时间来计算不同的月份范围。 (这显然是一个构造好的示例,但是在我看到该问题的实际代码中,该逻辑具有有效的业务推理)。 如果开始日期和付款日期之间的间隔少于5个月,则将使用表达式1,否则将使用表达式2。 这将导致错误“ ORA-01428:参数'-1'超出范围”,因为1条记录的数据条件无效,导致ORDER BY的BETWEEN子句开头的值为负值。 查询1 SELECT ref_no, CASE WHEN MONTHS_BETWEEN(paid_date, start_date) < 5 THEN -- Expression 1 MAX(amount) OVER (PARTITION BY ref_no ORDER BY paid_date ASC ROWS BETWEEN MONTHS_BETWEEN(paid_date, start_date) PRECEDING AND CURRENT ROW) ELSE -- Expression 2 MAX(amount) OVER (PARTITION BY ref_no ORDER …
8 oracle 


2
查询正在运行的会话的会话参数值
我不认为有办法做到这一点,但我想能够查询当前正在运行的会话对其COMMIT_WRITE会话参数的值。 我在v $性能视图中什么都没有看到……有人知道SYS x $视图可以从中检索出这样的值吗? 澄清-需要为另一个会话拉出参数设置,该设置独立于当前会话运行。
8 oracle 

1
将Oracle12C客户端与Oracle11.g数据库一起使用
我一直在使用Oracle12c客户端连接到远程服务器中的Oracle11g数据库约一个月,直到本周开始出现错误时,它才给我带来任何问题: The Network Adapter could not establish the connection Provider Code 17002 首先,我使用Oracle Sql Developer设计数据库表,然后一周,我开始使用Visual Studio 2013开发应用程序,在那里我使用本地适配器和库Oracle.DataBase.Client作为oracle提供的Visual Studio集成工具的一部分。与他们的数据库一起工作。 我想知道错误是否可能是因为客户端是12c,数据库是11g,或者这个问题无关紧要,并且可能正在发生其他事情。

1
为什么我创建的基于函数的索引会降低成本,但不会出现在解释计划明细表中?
抱歉,列/表的名称很糟糕,但是由于这是一个工作项目,因此我想确保可以问清楚。我只是希望至少了解为什么我没有看到我的功能索引被使用,所以我在生产环境中添加此索引感觉更好。 该查询使用的是我创建的视图,该视图具有许多不同的列,并带有执行以下操作的where子句: .... AND e.sysid = NVL(wi.ALPHAid, -999) AND NVL(wi.ALPHAid, -999) <> -999 AND NVL(wi.BRAVOid, -999) = -999 AND NVL(wi.CHARLIEid, -999) = -999 ... 据我了解,如果您通过函数传递列,而需要创建基于函数的索引,则Oracle无法使用索引。因此,在创建索引之前,我需要在解释计划中获得以下费用: 计划哈希值:1233409744 ------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | …
8 oracle  index  explain 

4
Windows 7中的Oracle 12c安装错误INS-30131
我试图在Windows 7 x64计算机上安装Oracle 12c,一段时间后出现此错误: SEVERE: [FATAL] [INS-30131] Initial setup required for the execution of installer validations failed. CAUSE: Failed to access the temporary location. ACTION: Ensure that the current user has required permissions to access the temporary location. *ADDITIONAL INFORMATION:* - Framework setup check failed on all the nodes - …

3
从CSV文件批量更新/插入数据库
我正在实现从一个数据库到另一个数据库的特定于应用程序的数据导入功能。 我有一个包含10000行的CSV文件。这些行需要插入/更新到数据库中。 在某些情况下,数据库中可能存在几行,这意味着需要更新这些行。如果数据库中不存在,则需要将其插入。 一种可能的解决方案是,我可以一行一行地读取,检查数据库中的条目并相应地构建插入/更新查询。但是此过程可能会花费很多时间来创建更新/插入查询并在数据库中执行它们。有时我的CSV文件可能有数百万条记录。 还有其他更快的方法来实现此功能吗?
8 java  oracle 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.