Oracle
SQL
Loader
的详细语法
Oracle
SQL
Loader
的详细语法
SQL
*LOADER
是
ORACLE
的数据加载工具,通常用来将操作系统文件迁移到
ORACLE
数据库中。
SQL
*LOADER
是大型数据
仓库选择使用的加载方法,因为它提供了最快速的途径(
DIRECT
,
PARALLEL
)。现在,我们抛开其理论不谈,用实例来使您快速掌握
SQL
*LOADER
的使用方法。
首先,我们认识一下
SQL
*LOADER
。
在
NT
下,
SQL
*LOADER
的命令为
SQLLDR
,在
UNIX
下一般为
sqlldr/sqlload
。
如执行:
d:\oracle
>sqlldr
SQL
*Loader
: Release 8.1.6.0.0 - Production on
星期二
1
月
8 11:06:42 2002
(c) Copyright 1999 Oracle
Corporation.& ......
Oracle
SQL
Loader
的详细语法
Oracle
SQL
Loader
的详细语法
SQL
*LOADER
是
ORACLE
的数据加载工具,通常用来将操作系统文件迁移到
ORACLE
数据库中。
SQL
*LOADER
是大型数据
仓库选择使用的加载方法,因为它提供了最快速的途径(
DIRECT
,
PARALLEL
)。现在,我们抛开其理论不谈,用实例来使您快速掌握
SQL
*LOADER
的使用方法。
首先,我们认识一下
SQL
*LOADER
。
在
NT
下,
SQL
*LOADER
的命令为
SQLLDR
,在
UNIX
下一般为
sqlldr/sqlload
。
如执行:
d:\oracle
>sqlldr
SQL
*Loader
: Release 8.1.6.0.0 - Production on
星期二
1
月
8 11:06:42 2002
(c) Copyright 1999 Oracle
Corporation.& ......
表专区
--
复制表及数据(从
userinfo
表复制到新表
b
select
*
into
b
from
UserInfo
--
获取当前数据库中的所有用户表
select * from sysobjects where xtype='U' and category=0
--
获取某一个表的所有字段
select name from syscolumns where id=object_id('表名')
约束专区
--
查询表
约束
exec
sp_helpconstraint
表名
--
添加外键约束
alter
table
表名
add
constraint
外键名
foreign
key
(
引用列名
)
references
被引用表名
(
列名
)
索引专区
----查找表中的索引
select
*
from
sysindexes
where
id
=
object_id
(
'
表名
'
)
exec
sp_helpindex
g_Account
-----
判断是否存在索引
select
*
from
sysindexes
where
name
=
'索引名
'
--创建索引
CREATE UNIQU ......
聚集索引的存储
一:聚集索引的叶级别存储
聚集索引在叶级别的存储其实就是以数据页的形式存储的,之前几篇关于堆数据行的存储已经都详细说过了,但是这里因为有了聚集索引,
所以还是有个特殊的地方需要注意的--带有唯一标识符的聚集索引行.
我们如果在建表并为其建立聚集索引时,没有为它指定UNIQUE属性,那么系统在键值遇到重复的时候,会自动增加一个字节的字段来保证聚集键值的唯一。
至于为什么要保证它聚集键值的唯一,那么因为非聚集索引在引用它作为书签的时候必须要征求唯一性来取到唯一行
/*----------------------------------------------------------------------
*auther:Poofly
*date:2010.3.14
*VERSION:
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22&n ......
--行列互转
/******************************************************************************************************************************************************
以学生成绩为例子,比较形象易懂 整理人:中国风
(Roy)
日期
:2008.06.06 ******************************************************************************************************************************************************/
--1、行互列
--> --> (Roy)
生成測試數據
if
not
object_id
(
'Class'
)
is
null
drop
table
Class
Go
Create
table
Class(
[Student]
nvarchar
(
2
),
[Course]
nvarchar
(
2
),
[Score]
int
)
Insert
Class
select
N
'张三
'
,N
'语文
'
,
78
union
all
select
N
'张三
'
,N
'数学
'
,
87
union
all
select
&nb ......
通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。
因为SQL Server并不包含这个功能,只能靠第三方的代码了。
以下存储过程可以实现:
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判断对象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
begin
print 'The object is not table'
......
程序启动Sql Server其实很简单
代码:
System.ServiceProcess.ServiceController myController =
new System.ServiceProcess.ServiceController("MSSQL$ACCP4444"); //服务名称 找了半天才找到,笨死我完了。在服务上右键属性,能看到
if (myController.CanStop)
{ }
else
{
myController.Start();
}
//注 需要引用 System.ServiceProcess 在项目->添加引用->能找到这个引用。 ......
程序启动Sql Server其实很简单
代码:
System.ServiceProcess.ServiceController myController =
new System.ServiceProcess.ServiceController("MSSQL$ACCP4444"); //服务名称 找了半天才找到,笨死我完了。在服务上右键属性,能看到
if (myController.CanStop)
{ }
else
{
myController.Start();
}
//注 需要引用 System.ServiceProcess 在项目->添加引用->能找到这个引用。 ......