oracle学习
[2005/06/03]学习oralce
由于条件限制,我从从youngcow.net上下载了oracle817 for Windows 的简装版,
安装平台winxp sp1.接下来就是按说明文档安装,安装好后即可使用,其中碰到了
"ORA-12560:TNS:协议适配器错误" 的问题,解决方法是
1.net start ORACLESERVICEORADB(启动oracle服务)
2.在环境变量中添加oracle_sid=oradb(你的数据库名字)
[2005/06/11]
从网上下了很多oracle的资料,却不知从和看起,心有很浮躁
看论坛和资料知,oracle服务端基本上安装在UNIX大型系统上,而我现在用的是
windows平台,暂时只能将就了
学习计划:
熟悉SQL语言(完成,但还不深透)
熟悉oracle体系结构(学习中,在学管理数据库时再领悟)
管理数据库(接下来要做的)
[2005/08/10]
-创建用户
>Create user ivan
identified by ivan
default tablespace users
temporary tablespace temp
quota 15m on users;
-赋予用户连接数据库权限
>Grant CREATE SESSION to ivan;
-赋予用户建表权限(此用户可创建自己的表,也可删除自己的表)
>Grant create table to ivan;
-创建表
>Create table taogan2 (
id number not null,
em_id number,
tg_score number,
tg_type char);
-用SQL*loader导入数据
\bin>Sqlldr ivan/ivan control=taogan.ctl
#达到提交点,逻辑记录计数64,此问题待解决。
/*
taogan.ctl如下
load data
infile 'taogan.dat'
append
into table taogan
(
ID decimal EXTERNAL,
Em_id decimal EXTERNAL,
Tg_score decimal EXTERNAL,
Tg_date date "dd-mon-yy",
Tg_type char
)
*/
?用Select * From taogan;后提示:未选定行。此次导入失败!
问题何在?
先用Insert 试试
>Insert into taogan2 values
(1,12,67,'a');
#已创建一行
>Select * From ivan.taogan2;
#
ID EM_ID TG_SCORE T
---------- ---------- ---------- -
1 12 67 a
#
[2005/08/10]
>shutdown]
关闭模式 A I T N
允许新连接 0 0 0 0
等到当前会话结束 0 0 0 1
等到当前事务结束 0 0 1 1
执行检查点并关闭文件 0 1 1 1
>startup
>STARTUP PFILE=/DISK1/initSID.ora
/*
OPEN 使用户得以访问数据库
MOUNT 为某些DBA 活动装载数据库但不允许用户访问数据库
NOMOUNT 创建SGA 并启动后台进程但不允许访问数据库
PFILE=parfile 允许使用非缺省参数文件配置例程
FORCE 在执行正常启动之前终止运行的例程
RESTRICT 只允许具有RESTRICTED SESSION 权限的用户访问数据库RECOVER
*/
[2005/08/11]
继续昨天的sql*loader
taogan2.ctl如下:
/*
load data
infile 'taogan2.dat'
append
into table taogan2
fields terminated by X'09'
(ID,Em_id,Tg_score,Tg_type)
*/
\bin>sqlldr ivan/ivan control=taogan2.ctl
#不知道这是什么意思,
达到提交点,逻辑记录计数63
达到提交点,逻辑记录计数126
达到提交点,逻辑记录计数189
达到提交点,逻辑记录计数252
达到提交点,逻辑记录计数315
达到提交点,逻辑记录计数378
达到提交点,逻辑记录计数406
达到提交点,逻辑记录计数407
#
select 之后显示11行隔一隔?
。。。。。。
ID EM_ID TG_SCORE T
---------- ---------- ---------- -
78 61 47 a
79 61 42 a
80 61 43 a
81 61 47 a
82 61 41 a
83 61 67 a
84 70 34 c
85 70 38 c
86 70 28 c
87 70 30 c
88 70 25 c
ID EM_ID TG_SCORE T
---------- ---------- ---------- -
89 70 42 c
90 70 37 c
。。。。。。
又一例子(摘自blog.eygle.com)
然后,编写测试用的数据文件,t.txt
aaaaa,xxxxx,2005-01-01 1:00:00
bbbbb,yyyyy,2005-03-01 12:00:00
ccccc,zzzzz,2005-12-01 18:00:00
创建测试表:
create table T_LOAD
(
A VARCHAR2(10),
B VARCHAR2(10),
C DATE
);
编写sqlldr使用的控制文件
load data
infile 't.txt'
badfile 't.bad'
append into table t_load
fields terminated by ','
trailing nullcols
(
a,
b,
c date "yyyy-mm-dd hh24:mi:ss"
)
开始做sqlldr
sqlldr control=t.ctl
SQL> select * From t_load;
A B C
---------- ---------- ----------
aaaaa xxxxx 01-1月 -05
bbbbb yyyyy 01-3月 -05
ccccc zzzzz 01-12月-05
[2005/08/11]
学习创建数据库(我的机子已有一实例在运行,不知道有没有影响)
成功手动安装了另一个例程及数据库,现在可以在两个数据库中切换
不过突然有种不对的感觉,如果象企业用户那样肯定是同时开启几个数据库的,
那是同一个例程还是几个不同的例程,想我的例子是重新安装了例程和数据库
不能同时用两个数据库(???)
以下是两个数据库切换的步骤:
bin>net stop oracleservicetest
bin>net start oracleserviceu16
bin>set oracle_sid=u16
用sqlplus internal/oracle登陆时会显示无效的用户名
在‘我的电脑’中环境变量设置oracle_sid=u16后才能用sqlplus internal/oracle登陆
另我做了以下试验:
bin>net start oracleserviceTest
bin>net start oracleserviceU16
之后
如果你‘我的电脑’中环境变量设置为oracle_sid=u16,那么你可以用u16数据库用户名登陆
如果你‘我的电脑’中环境变量设置为oracle_sid=test,那么你可以用test数据库用户名登陆
[2005-9-22]
前阵子学习了oracle结构,现在学习PL/SQL
[2005-11-13]
时间都荒废了,:(