标签: oracle9i

具有多个相同列索引的Oracle性能

我正在使用新的Oracle DB,其中一个表具有以下索引:

  • 索引1:ColA,ColB
  • 指数2:ColA

第二个索引是多余的,这会对性能产生负面影响吗?

indexing performance oracle9i

5
推荐指数
1
解决办法
6016
查看次数

oracle 9i获得给定孩子的树的最高成员

我在Oracle 9i数据库表中有一个父子关系

喜欢:

parent | child  
1      | 2  
2      | 3
2      | 4
null   | 1
1      | 8
Run Code Online (Sandbox Code Playgroud)

我需要得到一个给定孩子的绝对父母.说,我有孩子4,它必须给我父母:1

我已经看过CONNECT BY,但我找不到解决方案.

sql oracle plsql connect-by oracle9i

5
推荐指数
1
解决办法
1752
查看次数

试图在每1分钟后完成一项工作,但它不起作用?

我做了这个工作,应该在1分钟的时间间隔内执行,但它不起作用.当我使用 execute dbms_job.run(2);它时会被执行. printe是一个程序请建议!

BEGIN
    DBMS_JOB.SUBMIT  (
         job =>:job_no,
             WHAT=>'printe;',--Procedure 
             next_date=>sysdate+1/24*60,
             interval=>'sysdate+1/24*60'
          );
    commit;
END;
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle9i dbms-job

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

Node.js + Oracle 9i数据库

我是node.js的新手,我已经做了我的研究没有成功,所以这是我的问题:

可以将Node.js与Oracle 9i数据库一起使用吗?如果是这样,我在哪里可以找到一些相关的东西?

提前致谢!

javascript oracle oracle9i node.js

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

删除PL/SQL中特定字符后的所有字符

如何从此示例值中获取子字符串:

 john.abc_1234
Run Code Online (Sandbox Code Playgroud)

我希望它返回john.abc.所以基本上我们需要删除之后的所有信息_.

更多例子:1234_abc

sql oracle plsql substr oracle9i

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

监控索引使用情况

有没有办法找到Oracle在执行查询时是否曾使用过特定的Oracle索引?

我们有一个基于函数的索引,我怀疑它没有被Oracle使用,因此一些查询运行缓慢.我怎么能知道对数据库运行的查询是否正在使用此查询?

oracle oracle10g oracle9i oracle11g

5
推荐指数
2
解决办法
4737
查看次数

Oracle - 更新字符串以仅替换最后一个字符

我在Oracle 9i数据库中有以下字符串:

A,B,C,

当它是字符串中的最后一项时,我需要替换','的所有实例.我已经提出了以下声明,但它删除了字段中的所有内容,而不仅仅是逗号.有什么建议?

UPDATE table SET column = REPLACE(SUBSTR(column, -1, 1), ',', '');
Run Code Online (Sandbox Code Playgroud)

replace substr oracle9i sql-update

5
推荐指数
2
解决办法
3万
查看次数

如何解决Oracle 9i到11g迁移KOREAN_LEXER的问题?

我目前正在将Oracle 9i数据库(*.dmp文件)迁移到Oracle 11g数据库.为此,我使用exp和imp Oracle实用程序命令行:

exp USERID=<user>/<password>@<database> FILE=<path> OWNER=<owner>
Run Code Online (Sandbox Code Playgroud)

然后我创建一个skeleton.sql文件,它将创建表,索引表和最后的索引.

imp <user>/<password>@<database> FILE=<path> INDEXFILE="<path>\skeleton.sql" FROMUSER=<fromuser> TOUSER=<touser>
Run Code Online (Sandbox Code Playgroud)

在此迁移过程中,我能够正确导入大部分数据,当然,从一个数据库到另一个数据库,表空间保持不变,以避免任何冲突.

但问题来了.在Oracle 11g中,不再支持KOREAN_LEXER,而是必须使用KOREAN_MORPH_LEXER.为此,我执行以下SQL命令:

call ctx_ddl.create_preference('korean_lexer','korean_morph_lexer');
call ctx_ddl.add_sub_lexer('global_lexer','korean','korean_lexer',null);
Run Code Online (Sandbox Code Playgroud)

然后我导入skeleton.sql文件,以便在导入之前注入所需的数据:

sqlplus <user>/<password>@<database> @<path>\skeleton.sql
Run Code Online (Sandbox Code Playgroud)

表和索引表的创建顺利进行,直到我为每个创建的150多个索引收到以下错误:

CREATE INDEX "<schema>"."WORKORDER_NDX16" ON "WORKORDER"
ERROR at line 1 :
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10502: WORKORDER_NDX16 index does not exist
DRG-13201: KOREAN_LEXER is no longer supported
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366
Run Code Online (Sandbox Code Playgroud)

索引仍然创建,此消息​​只是一个警告.我尝试重建任何破坏的索引:

ALTER index WORKORDER_NDX16 …
Run Code Online (Sandbox Code Playgroud)

oracle oracle9i oracle11g

5
推荐指数
1
解决办法
1621
查看次数

SQL - 加入两个单独的SQL查询

我有一个表,用于存储Web应用程序中的页面命中,存储

unique_row_id  http_session_id  page_name   page_hit_timestamp
----------------------------------------------------------------
0              123456789        index.html  2010-01-20 15:00:00
1              123456789        info.html   2010-01-20 15:00:05
2              123456789        faq.html    2010-01-20 15:00:15
3              987654321        index.html  2010-01-20 16:00:00
4              987654321        faq.html    2010-01-20 16:00:05
5              987654321        info.html   2010-01-20 16:00:15
6              111111111        index.html  2010-01-20 16:01:00
7              111111111        faq.html    2010-01-20 16:01:05
8              111111111        info.html   2010-01-20 16:01:15
Run Code Online (Sandbox Code Playgroud)

我想运行一个SQL查询,它将向我显示用户最终浏览的最常见页面.

所以我最初的想法是,在我的(java)应用程序中,我可以运行一个查询,从表中选择不同的http_session_id值,然后对于每个不同的http_session_id,运行另一个获取带有'latest'page_hit_timestamp的页面的查询,并总计所有这些页面的总和.(对于上面的示例数据,我对info.html计数为2,对faq.html计数为1.)

但是,我想知道的是:有没有办法将这两个查询组合成一个单独的sql语句 - 或者我是否必须将存储过程路由下去?

我已经看过使用join了,但我无法弄清楚它是否适用于这种情况.

PS - 我知道我可以使用谷歌分析的喜欢在我的应用程序提供给我这个信息,但一),这是一个移动网络应用程序,所以不太适合现成的分析工具,和b)我只是好奇,知道这是否可以在SQL中完成.

sql oracle join oracle9i

4
推荐指数
1
解决办法
1357
查看次数

如何在单个语句中替换/删除字符串中的多个单词

我在一列中有一个包含完整水体名称的表格.即:

  • 金湖
  • 蓝水湖
  • 马斯科卡河
  • 桑迪湾

我想选择水的名称,但不是水的类型[湖泊,河流等...]

我个人使用:

select replace(watername, 'Lake') from water;
Run Code Online (Sandbox Code Playgroud)

但是,我希望在一个选择语句中捕获5种不同的水类型.

sql oracle oracle9i

4
推荐指数
2
解决办法
6611
查看次数