Tag: oracle

DBMS_OUTPUT.PUT_LINE

dbms_output.put_line降低plsql代码的性能吗?

Oracle(ORA-02270):此列名列表错误没有匹配的唯一或主键

我有两个表, Table JOB和Table USER ,这里是结构 CREATE TABLE JOB ( ID NUMBER NOT NULL , USERID NUMBER, CONSTRAINT B_PK PRIMARY KEY ( ID ) ENABLE ); CREATE TABLE USER ( ID NUMBER NOT NULL , CONSTRAINT U_PK PRIMARY KEY ( ID ) ENABLE ); 现在,我想添加外键约束JOB引用到USER表,如 Alter Table JOB ADD CONSTRAINT FK_USERID FOREIGN KEY(USERID) REFERENCES USER(ID); 这抛出了Oracle […]

为什么我似乎不能强制Oracle 11g为单个SQL查询消耗更多的CPU

我有一些庞大的查询运行在巨大的桌子上。 这些查询似乎是CPU瓶颈,并运行几个小时。 据我所知,Oracle有11g的许多新function,第2版可以在内部使查询执行同步。 然而,无论我在查询中join什么样的提示,我都不能在数据库框中使用多于一个的CPU。 我有一个非常值得尊敬的有8个CPU的Solaris机器,但是每次运行这个查询时,我最终都会把一个CPU推到100%,然后在那里坐几个小时。 我试过的提示是: SELECT /*+ PARALLEL */ … SELECT /*+ PARALLEL(5) */ … SELECT /*+ PARALLEL(10) */ … 在看盒子上的整体CPU消耗时,似乎没有任何工作。 它似乎总是挂100%的一个CPU。 不幸的是,即使解释计划似乎永远运行。 我会尝试用不同的提示获得不同的解释计划,看看是否有帮助。 有些查询可能是不可并行的,即使它们的运行时间在几小时之内? 这个查询中的主表有3.35亿行。 SQL查询文本: http://pastie.org/8634380 系统参数: http://pastie.org/8634383 编辑 : 详细解释计划 – 无并行: http://pastebin.com/HkZgbPpf 优化器相关的系统参数: http://pastie.org/8639841 进一步编辑:我们已经与Oracle联系了解为什么EXPLAIN PLAN需要2个多小时。 我们正在试图运行各种解释计划。

在Oracle中recursion

我在oracle中有下面的表格: Parent(arg1, arg2) 我想要关系父母的传递闭包。 那就是,我想要下面的表格 Ancestor(arg1, arg2) 在Oracle中这怎么可能? 我正在做以下事情: WITH Ancestor(arg1, arg2) AS ( SELECT p.arg1, p.arg2 from parent p UNION SELECT p.arg1 , a.arg2 from parent p, Ancestor a WHERE p.arg2 = a.arg1 ) SELECT DISTINCT * FROM Ancestor; 我得到错误 *Cause: column aliasing in WITH clause is not supported yet *Action: specify aliasing in […]

OracleCommand SQL参数绑定

我有一个与下面的参数绑定的问题。 连接工作,因为我已经testing它没有使用参数。 但是,执行前查询的值仍然使用“@userName”而不是“jsmith”。 问题是什么? 这是不是正确的方式来绕过绑定? public static String GetFullName(String domainUser) { DataTable dT; String fullName = ""; OracleConnection db = DatabaseAdapter.GetConn(); db.Open(); OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM user_profile WHERE domain_user_name = '@userName'", db); oraCommand.BindByName = true; oraCommand.Parameters.Add(new OracleParameter("@userName", domainUser)); OracleDataReader oraReader = null; oraReader = oraCommand.ExecuteReader(); if (oraReader.HasRows) { while (oraReader.Read()) { fullName […]

需要重置Oracle中序列的值

我正在使用Spring和Hibernate来开发Java应用程序。 假设我有一张桌子。 当我从这个表中删除一些logging时,有时我需要重置主键字段的值。 假设我有一个表中有10条logging,我删除了最后5条logging。 现在,当我插入新logging时,主键字段的值应该从6开始,但是从11开始。 如果我需要在MySql中以6 ( maximum +1 )启动主键值,那么我只需要执行下面的SQL语句。 alter table table_name auto_increment=1; 这会自动将auto_increment的值重置为该字段的maximum + 1值(可能在概念上不正确,但是可行)。 在Oracle(10g)中,我使用主键sequence 。 当Oracle从数据库中删除一些logging时,是否有办法将sequence的值重置为maximum + 1值?

Oracle是否使用短路评估?

我有一个Oracle查询结构如下: SELECT * FROM table WHERE X='true' OR Y IN (complicated subquery) 如果Oracle看到X确实等于“真”,它是否仍然尝试评估WHERE子句的Y IN(子查询)部分? 另外,在这样的陈述中,子查询是否会对表中的每个条目执行多次? 我是否会变得更好: WITH subQ as (complicated subquery) SELECT * FROM table WHERE X='true' OR Y IN (SELECT id FROM subQ)

如何从返回参考光标的Oracle过程中得到格式良好的结果?

在MS SQL Server中,如果我想检查存储过程的结果,我可能会在Management Studio中执行以下操作。 –SQL SERVER WAY exec sp_GetQuestions('OMG Ponies') 结果窗格中的输出可能如下所示。 ID Title ViewCount Votes —– ————————————————- ———- ——– 2165 Indexed View vs Indexes on Table 491 2 5068 SQL Server equivalent to Oracle's NULLS FIRST 524 3 1261 Benefits Of Using SQL Ordinal Position Notation? 377 2 (3 row(s) affected) 无需编写循环或PRINT语句。 为了在Oracle中做同样的事情,我可能会在SQL Developer中执行下面的匿名块 –ORACLE […]

Oracle SQL转义符(用于'&')

在尝试使用Oracle SQL Developer执行SQL插入语句时,我一直在生成一个“inputreplace值”提示符: insert into agregadores_agregadores ( idagregador, nombre, url ) values ( 2, 'Netvibes', 'http://www.netvibes.com/subscribe.php?type=rss\&url=' ); 我已经尝试使用上面的'\' 转义查询中的特殊字符,但我仍然无法避免与&符号,导致stringreplace。 前面的混蛋,让我的一天:)

从C#调用Oracle存储过程?

我刚开始阅读关于存储过程。 任何人都可以请帮助我在C#中的Oracle调用存储过程?