今天电脑拿回家,启动oracle数据库的监听服务时发现无法启动。给出的错误提示是说,这个服务启动了又停止了,不知道是为什么。因为在学校的时候用是没有问题的。我想应该是因为ip的是问题。在网上查了一下:你是否修改你的机器名或IP地址,如果有修改,把ORACLE\ora81\network\admin\listener.ora文件中的host修改为新机器名或IP。我用的是oracle 10g,listener.ora的目录在D:\oracle\product\10.1.0\db_1\NETWORK\ADMIN下。listener.ora文件的内容如下:
# listener.ora Network Configuration File: d:\oracle\product\10.1.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
  ......
--当请求执行后不能"查看输出"的时候表示有进程死锁了
--查找死锁的进程
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
--删除死锁的进程,删除当天前的,不能删除当天的,
--alter system kill session 't2.sid,t2.serial#'
alter system kill session '137,40155' --第一个数字为SID,第二个数字为SERIAL ......
使用Oracle 9i 数据库
安装完毕后Oracle数据库会自动启动,下面我们用实际超作来说明一下Oracle 9i数据库的启动和关闭。
以Oracle用户登陆数据库,开个控制台窗口;
关闭Oracle 9i 数据库
-------------强制关闭数据库
-------------shutdown abort
[Oracle@wing /Oracle]$ sqlplus " / as sysdba" //以sysdba用户登陆数据库
SQL*Plus: Release 9.0.1.0.0 - Production on Wed Jul 11 15:35:31 2001
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
With the Partitioning option
JServer Release 9.0.1.0.0 - Production
运行shudown命令关闭数据库
SQL> shutdown
Database closed.
Database dismounted.
Oracle instance shut down.
SQL>
启动Oracle 9i 数据库
[Oracle@wing bin]$ sqlplus " / as sysdba"
SQL*Plus: Release 9.0.1.0.0 - Production on Wed Jul 11 16:00:59 2001
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup
Oracle instance started. ......
原来用的SQL server,主要有两种分页方法:游标和拼字符串,游标法太慢,拼串法也有一些缺陷。
现在找到了一个Oracle的分页方法,也可以说是拼字符串,但是用起来就比SQL server的要方便,没有之前的问题:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层为SQL语句,可以使用group by、order by等语句,比较方便 ......
有时候我们可能不知道一个用户的密码,但是又需要以这个用户做一些操作,又不能去修改掉这个用户的密码,这个时候,就可以利用一些小窍门,来完成操作。
具体操作过程如下:
SQL*Plus: Release 9.2.0.5.0 - Production on 星期日 11月 21 13:32:34 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys/oracle as sysdba
已连接。
SQL> select username,password from dba_users;
USERNAME PASSWORD
------------------------------ ------------------------------
SYS 8A8F025737A9097A
SYSTEM 2D594E86F93B17A1
DBSNMP E066D214D5421CCC
TOAD A1BA01CF0DD82695
OUTLN 4A3BA55E08595C81
WMSYS 7C9BA362F8314299
已选择6行。
SQL> connect system/oracle
已连接。
SQL> connect sys/oracle as sysdba
已连接。
修改用户system密码为manager
SQL> ......
前言:
Oracle的对表操作中有一种类似于DataSet的对象操作方法CURSOR,它可以通过建立表的操作对象或者说表的指针对象来达到从表里面提取数据的操作。
说明:
一般通过SQL语言可以针对某个表的某一行或多行数据进行操作比如说SELECT,UPDATE等。这些操作必须以SQL语句的语法格式来被解释器解释并执行。在实际变成中经常用到,特别是用编程语言来对数据库操作时更是必不可少。当然数据库也不是不能自己来做一些处理的,简单的数据操作的话,像ORACLE这样的数据库可以用自身的PL/SQL语言来实现。不仅执行速度快,而且节省网络。因为它是直接在数据库端执行的。
CURSOR就是PL/SQL中的一种实现对表的对象化操作方法。
他一共分为两种:
显式型
解释:顾名思义,就是在程序书写过程中利用创建表对象的过程中,明确的使用变量名。
暗式型
解释:不是用变量名,而用简单的语法来完成对象的操作。ORACLE里面已经定义好了,只需要调用就可以使用。
关于PL/SQL的书写格式,这里省略。
显式型的CURSOR在定义过程中必须写在定义区间
也就是说需要写在 IS ..... BEGIN 或者 DECLARE .... BEGIN。
而执行的 ......