Archive for 5月, 2005

libclntsh.so is up to date

今天有一客户在编译一proc*c application时发生如下错误:
“libclntsh.so is up to date”
在metalink上查找该内容,解决方法如下:(Note:153677.1)
fact: Precompilers 8

fact: PRO*C

fact: Solaris Operating System (SPARC)

symptom: Building Pro*C application fails

symptom: ‘libclntsh.so’ is up to date

cause: You are missing the “build” target in the make command.
fix:Build your Pro*C application using the “build” target as
follows:
      make -f demo_proc.mk build OBJS=progname.o EXE=progname(For c++ use the “cppbuild” target)

今天同步复制出现了如下问题

这是从CSDN上转移过来的帖子,问题发生的时间是:2004/9/22
——————————————————————————————–
Table error: Database ID 20, object ID 5575058, index ID 0. Chain linkage mismatch. (1:1617)->next = (1:1618), but (1:1618)->prev = (1:356)..
Error: 8908, Severity: 22, State: 6
查了一下online book,解释如下:
Message Text
Table error: Database ID %d, object ID %d, index ID %d. Chain linkage mismatch. %S_PGID->next = %S_PGID, but %S_PGID->prev = %S_PGID.
Explanation
This error occurs when Microsoft® SQL Server™ detects [...]

cron服务配置祥解

Linux和Unix中用于排程的工具是crontab,以下为Linux中的详细用法:
1.cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
 
你也可以将这个服务在系统启动的时候也自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
 
2.现在cron这个服务已经在进程里面了,我们就可以用这个服务了,cron服务提供以下几种接口供大家使用:
2.1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
 
比如说root查看自己的cron设置:
crontab -u root -l
 
再例如,root想删除fred的cron设置:
crontab -u fred -r
 
在编辑cron服务时,编辑的内容有一些格式和约定,输入:
crontab -u root -e
 
进入vi编辑模式,编辑的内容一定要符合下面的格式:
*/1 * * * * ls >> /tmp/ls.txt
 
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小时 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
 
除了数字还有几个个特殊的符号就是”*”、”/”和”-”、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-”代表从某个数字到某个数字,”,”分开几个离散的数字。以下举几个例子说明问题:
每天早上6点
0 6 * * * echo “Good morning.” >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * [...]

Linux中扩展swap空间

在管理 oracle 的过程中经常会出现swap空间不足的情况,这时就要考虑扩展swap空间,以下为在linux中扩展swap的几种方法,供各位参考:
一.增加一个swap分割区
1.在root用户下执行fdisk
[root@OCS_Test root]#fdisk /dev/hda
然后选择n,新增一个分区:/dev/hda3,分配其大小,比如512M
然后选择t,改变该分区的system id为82
退出fdisk
2.[root@OCS_Test root]#mkswap /dev/hda3 –指定该SWAP分区
3.[root@OCS_Test root]#swapon /dev/hda3 –启用该swap分区
4.如需在开机时启用该swap,则在/etc/fstab添加如下内容:
    /dev/hda3    swap           swap    defaults        0 0
6.确认swap已经被使用:
  用free或cat /proc/swaps可察看哪个swap在使用
7.关闭swap
  swapoff /dev/hda3
二.增加一个文件
1. 先决定SWAP文件的大小,然后指定区块大小:bs,再指定区块数量count,则SWAP文件的大小是:count*bs
2. 在root用户下执行如下命令:
   [root@OCS_Test root]#dd if=/dev/zero of=/swapfile bs=1024 count=65536
   则产生的文件大小为64M
3. [root@OCS_Test root]#mkswap /swapfile
4. [root@OCS_Test root]#swapon /swapfile
5. 如需在开机时启用该swap,则在/etc/fstab添加如下内容:
   /swapfile    swap           swap    defaults        0 0
6.确认swap已经被使用:
  用free或cat /proc/swaps可察看哪个swap在使用
7.关闭swap
  swapoff /swapfile

SQL SERVER中实现十六进制转换为字符的两种方法(三)

两种方法的优缺点:
第一种方法采用自定义函数实现,无须另外写dll,也无须考虑安全性的问题,大家知道sql server中使用sp_oacreate这个存储过程是很危险的,而且执行sp_oacreate需要sysadmin权限,而第一种方法就可以不必考虑这个问题,但第一种方法的缺点是不好控制字符输出格式,而第二种方法很容易控制字符输出的格式
两种方法性能上的比较
我们做如下测试:
新建一Table,如下:
CREATE TABLE Int_To_Hex
 (
  intValue int ,
 strHex varchar(255))
DECLARE @I INT
SET @I=0
WHILE(@I<=10000)
  BEGIN
    INSERT INTO Int_To_Hex(intValue) VALUES(@I)
    SET @I=@I+1
  END
我的电脑配置:
IBMX30  RAM:512M  CPU:P3 1066
第二种方法:
UPDATE Int_To_Hex SET strHex=dbo.fn_GetHexStr(intValue,3)
UPDATE 10001笔,总共耗时13秒,update结果如下:
intValue  strHex
—————————
0           000
1           001
2           002
3           003
4           004
5           005
6           006
7           007
8           008
9           009
10          00A
11          00B
12          00C
13          00D
第一种方法:
UPDATE Int_To_Hex SET strHex=dbo.fn_hexadecimal(intValue)
同样是10001笔资料,共耗时1秒,结果如下:
intValue    strHex
—————————
0           000
1           001
2           002
3           003
4           004
5           005
6           006
7           007
8           008
9           009
10          [...]

SQL SERVER中实现十六进制转换为字符的两种方法(二)

第二种方法:
先用VB写一个dll,比如叫intToHex,里面代码如下:
Option Explicit
Public Function IntToHex(intValue As Long, Optional intlength As Long = 2) As String
  IntToHex = Hex$(intValue)
  If Len(IntToHex) < intlength Then
     Dim i As Integer
     For i = 1 To intlength - Len(IntToHex)
         IntToHex = “0″ & IntToHex
     Next
  End If
End Function
其中intValue是要转化的数字,intlength是转化后要保留的字符的长度
将其编译成dll,然后在sql server中执行如下命令注册:
regsvr32 c:\intTohex.dll
然后自己写一个自定义函数,去实现这个功能:
CREATE FUNCTION dbo.fn_GetHexStr ( @intValue int,@paraValue int=4)
 RETURNS VARCHAR(10)
AS
BEGIN
DECLARE @object int
DECLARE @hr [...]

SQL SERVER中实现十六进制转换为字符的两种方法(一)

前几天同事遇到一客户有这样的需求:
客户给一段范围 比如0000~FFFF ,要求产生一组十六进制序列号 比如逢二进一 就要得到0002,0004,0006。。这一系列序号,最终要把这组序号加上一定的字符型prefix,存储到DB里去,前提是要求所有这一切在SQL后台处理
问我sql中有没有直接将十六进制直接转换为字符的函数?
查了查sql的book online,sql server中对十六进制的表示方法为在十六进制前加上0x,现在的问题就是如何将十六进制的前置符去掉的问题,比如:0xFFFF,要变为FFFF,而sql server中是没有这样的内部函数的,怎么办呢?想了想,大概有两种方法:
1.用sql server2000中的自定义函数去实现
   自定义函数功能强大,应该可以实现这个功能
2.通过sql server中的sp_OACreate等存储过程去调用自己写的dll
   大致想法是这样的:在VB中能很容易实现将十六进制转化为字符,比如用hex$函数即可实现,现在只要自己写一个dll,然后在sql中通过sp_oacreate存储过程去调用即可
对于第一种方法,查了一下资料,发现book online中就有现成的例子可实现这个功能,真是天助我也,看来查资料也是一种很重要的能力:),存储过程如下:
CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(255),
    @hexvalue varchar(255) OUTPUT
AS
DECLARE @charvalue varchar(255)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = ”–这个是前缀字符,可定义为自己需要的字符,比如SN,0X
SELECT @i = 1
SELECT @length = DATALENGTH(@binvalue)
SELECT @hexstring = ‘0123456789abcdef’
WHILE (@i <= @length)
BEGIN
DECLARE @tempint int
DECLARE @firstint int
DECLARE @secondint int
SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
SELECT @firstint = [...]

Page 2 of 2«12

    搜索本站

    站点日历

    5月 2005
    « 4   6 »
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  

    订阅本站

    文章分类

    最新日志

    热点文章

    日志存档

    常用标签