存档

2010年9月 的存档,文章数:26

在sqlplus中,desc后面跟上表名,能够显示简要的表创建语法。

下面的SQL语句能够实现类似sqlplus中desc的类似的功能。

select o.obj#,o.name object_name,c.column_id,c.column_name,c.data_type,c.data_length,c.data_precision,c.data_scale,c.nullable
from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
where o.obj#=t.obj#
  and o.name=c.table_name
  and c.owner=u.name
  and o.owner#=u.user#
  and u.name='SCOTT'
  and o.name='EMP'
order by obj#,column_id 
;

PowerDesign是Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于Entiry-Relation的数据模型,分别 从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义。物理数据模型是在概念数据模型 的基础上针对目标数据库管理系统的具体化。

PowerDesigner 15下载地址:http://download.sybase.com/eval/PowerDesigner/PowerDesigner15_Evaluation.exe
库文件:
http://download.sybase.com/eval/PowerDesigner/PowerDesigner15_Library
PowerDesigner15.1破解补丁下载:
http://www.ali8ba.com/upfiles/pdflm15.rar

PowerDesigner 12.5下载地址:http://download.sybase.com/eval/PowerDesigner/powerdesigner125_eval.exe

PowerDesigner12.5破解补丁下载:
http://blogimg.chinaunix.net/blog/upfile2/080619224716.zip

破解方法:
下载 PowerDesigner12.5 后有一个 license.lic 和 pdflm12.dll 两个文件,license.lic 是用于破解序号的,pdflm12.dll 是用于替换原来安装后的文件,破解首先用 pdflm12.dll 替换安装要目录的 pdflm12.dll 文件,然后在PD的菜单中找到 Tools ==>> License Parameters ==>> 选第一个,然后先load找到 下载的 license.lic 文件,重启即破解完成。

前面有篇文章中,介绍利用游标和sp_spaceused来查看数据库内所有表占用的空间,并倒序排序。

统计SQL SERVER数据库内所有表占用空间并排序

 

下面介绍另外一种方法:利用sp_MSforeachtable替代游标来实现上篇文章中的类似功能。

 

use ossdb
go

 --------查看所有表空间使用情况
CREATE TABLE #T(
 name  nvarchar(256),
 rows  varchar(11),
 reserved varchar(18),
 data  varchar(18),
 index_size varchar(18),
 unused  varchar(18)
)

EXEC sp_MSforeachtable "INSERT #T EXEC sp_spaceused '?'"

SELECT   * FROM #T ORDER BY Convert(int,SubString(data,1,Len(data)-3)) DESC

drop table #T
go

 

测试通过,将ossdb改成用户数据库名字即可。

把从Sybase或其它类型数据库导出的文本文件再次导入到sybase数据库的时候,bcp是个很好的工具。

本博客已有3篇关于bcp的文章:

 

如果要用bcp导入很多的表,对每一个表都要写一条语句是件很费劲的事情,尤其表数量很多的时候。简单的方法呢?

第一种方法: 利用SQL语句

在bcp out导出数据的时候,也就是生成相应的bcp out命令语句的时候,也同时生成bcp in导入的命令语句。

生成导出语句的SQL为:

select  "bcp "+db_name()+"."+user_name(uid)+"."+name+"  out /tmp/databcpout/" +name+ ".txt -Usa -P<sa_passwd> -S<server_name>  -c -T10000000 " from sysobjects where type='U' order by name

其中: 将<sa_passwd>,server_name> 分别替换成sa的密码和数据库服务器名。或者用对想要导出的表有查询权限的用户也行。

Sybase ASE自版本15.0.2开始增加判断字符串是否为日期类型的函数:isdate,以及判断字符串是否为数字类型的函数:isnumeric

函数:isdate

Syntax

isdate(character_expression)

Parameters

character_expression

    is a character-type variable, constant expression, or column name.

Usage

Returns 1 if the expression is a valid datetime value; returns 0 if it is not. Returns 0 for NULL input.

在solaris系统中,tar命令中排除指定目录和文件的参数与linux中tar命令不同。

在solaris 10中,可以这么用。

比如:我想打开目录/sybase到/tmp/sybase.tar,排除目录/sybase下的两个文件:EBF17156.tar和

cd /sybase

echo /sybase/EBF17156.tar > excludefile

echo /sybase/ase1503_solsparc64_2.tar  >> excludefile

tar cvfX /tmp/sybase.tar excludefile  /sybase

Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。

一、连接各种数据库方式速查表
   下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。
   1、Oracle8/8i/9i数据库(thin模式)
Java代码  
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();   
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID   
String user="test";   
String password="test";   
Connection conn= DriverManager.getConnection(url,user,password);   
 
   2、DB2数据库
Java代码  
Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();   
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名   
String user="admin";   
String password="";   
Connection conn= DriverManager.getConnection(url,user,password);   
 

演示在用java连接SQL Server数据库。用了一个简单的java程序作试验。

第一步:获得jdbc for SQL Server驱动程序
sqljdbc.jarsqljdbc4.jar   sqljdbc_auth.dll

为了支持向后兼容以及可能的升级方案,JDBC Driver 2.0 在每个安装包中都包括 2 个 JAR 类库:sqljdbc.jarsqljdbc4.jar

JAR 说明

sqljdbc.jar

sqljdbc.jar 类库提供对 JDBC 3.0 的支持。

sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。

注意: JDBC Driver 2.0 不支持 JRE 1.4。使用 JDBC Driver 2.0 时必须将 JRE 1.4 升级至 JRE 5.0 或更高版本。在某些情况下,您可能需要重新编译应用程序,因为它可能与 JDK 5.0 或更高版本不兼容。有关详细信息,请参阅 Sun Microsystems 网站上的文档。

 

sqljdbc4.jar

sqljdbc4.jar 类库提供对 JDBC 4.0 的支持。它不仅包括 sqljdbc.jar 的所有功能,还包括新增的 JDBC 4.0 方法。

sqljdbc4.jar 类库要求使用 6.0 或更高版本的 Java 运行时环境 (JRE)。在 JRE 1.4 或 5.0 上使用 sqljdbc4.jar 会引发异常。

注意: 如果应用程序必须在 JRE 6.0 上运行,即使该应用程序不使用 JDBC 4.0 功能,也应使用 sqljdbc4.jar

 

请注意,尽管驱动程序旨在与所有主要的 Sun 等效 Java 虚拟机一起工作并由这些虚拟机支持,但却是在 Sun JRE 5.0 或更高版本上进行测试的。

注意:JRE6的要选择sqljdbc4.jar

 

第二步:设置环境变量CLASSPATH

将下载下来的sqljdbc.jar或sqljdbc4.jar放到目录d:\shared\lib下。将环境变量CLASSPATH设置为:D:\shared\lib\sqljdbc.jar

set CLASSPATH=.;d:\shared\lib\sqljdbc.jar;  

(注意:第一个“.”,这个代表当前目录。)

 

第三步:编写一段简单的java程序。

下面的这段程序使用驱动sqljdbc.jar连接SQL Server 2005数据库,并提取master数据库中的用户表的ID和name两列信息。

SQL Server 2005服务器在本机,端口为1433。登录sa的密码为:secret

执行:select id,name,crdate from dbo.sysobjects where type='U'   这条语句返回当前数据库(这可在url中指定!)中的用户表的id和name列。