标签: oracle9i

如何手动卸载Oracle?

有时,我在Windows上的Oracle数据库会受到冲击.如何手动卸载Oracle?

database oracle uninstall oracle10g oracle9i

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

Oracle 9 - 重置序列以匹配表的状态

我有一个序列用于在oracle表中播种我的(基于Integer的)主键.

看来这个序列并不总是用于在表中插入新值.如何将序列与表中的实际值一起返回?

oracle sequence oracle9i

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

如何手动初始化PL/SQL中的RECORD集合?

家伙.这是PL/SQL中的一个简单的二维数组样本,它运行良好.

declare
  type a is table of number;
  type b is table of a;

  arr b := b(a(1, 2), a(3, 4));
begin
  for i in arr.first .. arr.last loop
    for j in arr(i).first .. arr(i).last loop
      dbms_output.put_line(arr(i) (j));
    end loop;
  end loop;
end;
Run Code Online (Sandbox Code Playgroud)

我需要做的是为表创建类似的东西RECORDS.像这样:

 type a is record(a1 number, a2 number);
 type b is table of a;
Run Code Online (Sandbox Code Playgroud)

问题是,我可以手动初始化这种数组,还是应该填充bulk collects或类似?与上面相同的语法似乎不起作用,我无法在手册中找到任何初始化示例.

arrays oracle plsql oracle9i multidimensional-array

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

Oracle/SQL - 按日期按行动对项目进行分组

大家好我有一个'widget'表,其中包含以下列:widget,action,timestamp_.我们想要做的是在特定日期之间拉出每天被拒绝多次的所有小部件.所以这是一个示例表

widget      action      timestamp_
-------------------------------------------
type1       reject      2011-05-10 08:00:00
type1       reject      2011-05-10 09:00:00
type1       reject      2011-05-10 09:30:00
type2       reject      2011-05-11 09:30:00
type3       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type1       reject      2011-05-11 09:30:00
type2       reject      2011-05-12 10:30:00
type2       reject      2011-05-12 12:30:00
type3       reject      2011-05-12 12:30:00
Run Code Online (Sandbox Code Playgroud)

所以我期待以这两种方式之一看到结果....

在日期x和y之间,有两个小部件在一天内被多次拒绝

这将看到type1在一天内被拒绝多次,因为type2因此计数为:2

要么

显示每个小部件及其被拒绝的日期多次以及多少次.例..

widget      date            count
---------------------------------
type1       2011-05-10      3
type1       2011-05-11      2
type2       2011-05-12      2
Run Code Online (Sandbox Code Playgroud)

这可能是首选的输出......但是如何?

提前致谢!

sql group-by oracle9i

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

最伟大的不是空列

我需要使用基于两个DATETIME列的最大值的公式更新行.我通常会这样做:

GREATEST(date_one, date_two)
Run Code Online (Sandbox Code Playgroud)

但是,两个列都允许为NULL.我需要最大的日期,即使另一个是NULL(当然,当两者都是NULL时我期望NULL)并且GREATEST()当其中一列为NULL时返回NULL.

这似乎有效:

GREATEST(COALESCE(date_one, date_two), COALESCE(date_two, date_one))
Run Code Online (Sandbox Code Playgroud)

但我想知道......我错过了一个更简单的方法吗?

sql oracle oracle9i

14
推荐指数
1
解决办法
3919
查看次数

从查询中使用START WITH创建序列

如何创建一个序列,其中START WITH值来自查询?

我正在尝试这种方式: CREATE SEQUENCE "Seq" INCREMENT BY 1 START WITH (SELECT MAX("ID") FROM "Table");

但是,我收到ORA-01722错误

oracle plsql sequence oracle9i ora-01722

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

为列定义字符集对于oracle数据库表

我在SQL*Plus中运行以下查询

CREATE TABLE  tbl_audit_trail (
  id NUMBER(11) NOT NULL,
  old_value varchar2(255) NOT NULL,
  new_value varchar2(255) NOT NULL,
  action varchar2(20) CHARACTER SET latin1 NOT NULL,
  model varchar2(255) CHARACTER SET latin1 NOT NULL,
  field varchar2(64) CHARACTER SET latin1 NOT NULL,
  stamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  user_id NUMBER(11) NOT NULL,
  model_id varchar2(65) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (id),  
  KEY idx_action (action)
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

action varchar2(20) CHARACTER SET latin1 NOT NULL,
                      *
ERROR at line 5:
ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

你能说一下我错过了什么吗?

oracle character-encoding oracle9i

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

在列上使用distinct并在另一列上执行order by会产生错误

我有一个表:abc_test,列n_num,k_str.

此查询不起作用:

    select distinct(n_num) from abc_test order by(k_str)
Run Code Online (Sandbox Code Playgroud)

但是这个有效:

    select n_num from abc_test order by(k_str)
Run Code Online (Sandbox Code Playgroud)

DISTINCT和ORDER BY关键字如何在内部工作,以改变两个查询的输出?

sql oracle distinct sql-order-by oracle9i

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

过滤all_views上的"文本"列

有什么办法可以过滤oracle的all_views表上的文本列吗?

例如:

SELECT * 
  FROM ALL_VIEWS 
  WHERE UPPER(TEXT) LIKE '%FOO%';
Run Code Online (Sandbox Code Playgroud)

例外:

ORA-00932: inconsistent datatypes: expected NUMBER got LONG
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
Run Code Online (Sandbox Code Playgroud)

编辑:

DESC ALL_VIEWS
Name             Null     Type           
---------------- -------- -------------- 
OWNER            NOT NULL VARCHAR2(30)   
VIEW_NAME        NOT NULL VARCHAR2(30)   
TEXT_LENGTH               NUMBER         
TEXT                      LONG()         
TYPE_TEXT_LENGTH          NUMBER         
TYPE_TEXT                 VARCHAR2(4000) 
OID_TEXT_LENGTH           NUMBER         
OID_TEXT                  VARCHAR2(4000) 
VIEW_TYPE_OWNER           VARCHAR2(30)   
VIEW_TYPE                 VARCHAR2(30)   
SUPERVIEW_NAME            VARCHAR2(30)   
Run Code Online (Sandbox Code Playgroud)

sql oracle views oracle9i ora-00932

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

在SQL中将列转换为行

我需要编写一个查询,它接受行并将其转换为列 - 这是我的表:

Count    fname   lname   id
-----------------------------
1        abc     def    20
2        pqr            20      
3        abc     xyz    20  
4        xyz     xyz    20
1        abc     def    21
1        pqr     xyz    22
2        abc     abc    22
Run Code Online (Sandbox Code Playgroud)

这是我想要产生的输出:

id  fname  lname  fname  lname  fname  lname  fname  lname
-------------------------------------------------------------
20  abc    def    pqr    NULL   abc    xyz    xyz    xyz
21  abc    def    NULL   NULL   NULL   NULL   NULL   NULL   
22  abc    abc    NULL   NULL   NULL   NULL   NULL   NULL
Run Code Online (Sandbox Code Playgroud)

每个id的最大计数值是4.我正在使用Oracle 9i.

sql oracle plsql pivot oracle9i

9
推荐指数
1
解决办法
4137
查看次数