存档
Sybase ASE自15.0.2后增加了用户自定义函数的功能。
在Sybase中,以 2010-10-18 12:30:01格式显示日期数据时,用convert函数不能实现,需要替换一下字符。
select convert(varchar,getdate(),117)
go
------------------------------
2010/10/18 20:51:10
(1 row affected)
利用函数str_replace替换上面返回的日期字符串中的/为-
str_replace(convert(char(19),getdate(),117),'/','-')
1> select str_replace(convert(char(19),getdate(),117),'/','-')
2> go-------------------
2010-10-18 20:53:13(1 row affected)
在oracle的sqlplus中有一个命令:desc,能够简要的显示基表、视图等的结构。desc的显示结果简单明了,比较实用。虽然在Sybase ASE中的存储过程sp_help也能实现查看表结构的目的;但是,显示结果很多尤其换行混乱,让人看得眼花缭乱。显示的存储过程:sp_desc能够实现oracle的sqlplus中desc相同的功能,仅仅多了一列:列序号。
效果图如下:
存储过程sp_desc的语法如下:
在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