随笔-204  评论-90  文章-8  trackbacks-0
 
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO




ALTER     PROCEDURE proc_get_mt
AS
begin

    
declare cur_mt cursor for 
        
Select  * from OpenQuery(wxtl_test, 
                        
'select send_id,
                            mobile,
                            send_msg,
                              sys_id
                            from wxtlplatform.send 
                            where SEND_STATUS = 0
')
    
open cur_mt

    
declare     @v_send_id        varchar(20),
                
@v_mobile        varchar(21),
                
@v_send_msg        varchar(500),
                
@v_message        varchar(200),
                
@v_sys_id        varchar(20),
            
@v_cmd            varchar(500),
                
@v_ext_cmd        nvarchar(500),
                
@v_ext_code        varchar(20),
                
@v_OrgAddr        varchar(100)

    
fetch next from cur_mt into @v_send_id,@v_mobile,@v_send_msg,@v_sys_id
    
while @@fetch_status = 0
        
begin
            
PRINT ' '
           
SELECT @v_message = '----- Send info : ' + @v_send_id + ' ' + @v_mobile + ' ' + @v_send_msg
           
PRINT @v_message
            
            
--查找扩展码            
            select @v_ext_cmd = 'Select @v_ext_code=down_lt from OpenQuery(wxtl_test,''select down_lt from wxtlplatform.sys_info where sys_id = ' + 
                         
@v_sys_id + ''')'
            
            
exec sp_executesql @v_ext_cmd, N'@v_ext_code varchar(20) output'@v_ext_code output
            
Select @v_ext_code
            
PRINT @v_ext_code 
            
PRINT @v_ext_cmd
            
select @v_OrgAddr = '62090001001' + @v_ext_code
            
--exec proc_get_mt

            
--插入MAS MT表
            INSERT INTO tbl_SMSendTask
              (CreatorID,
               TaskName,
               SmSendedNum,
               OperationType,
               SuboperationType,
               SendType,
               OrgAddr,
               DestAddr,
               SM_Content,
               SendTime,
               NeedStateReport,
               ServiceID,
               FeeType,
               FeeCode,
               MsgID,
               SMType,
               MessageID,
               DestAddrType,
               SubTime,
               TaskStatus,
               SendLevel,
               SendState,
               TryTimes,
               
Count,
               SuccessID,
               Reserve1,
               Reserve2)
            
VALUES(
               
'0000'
                
''
                
0
                
'WAS'
                
'66'
                
1
                
@v_OrgAddr
                
@v_mobile
                
@v_send_msg
                
GETDATE(), 
                
1
                
'EIE'
                
'01'
                
'0'
                
''
                
0
                
'0'
                
0
                
GETDATE(), 
                
0
                
0
                
3
                
0
                
0
                
0
                
''
                
'')

--'0404','',0,'WAS','66',1,'620900010010404','13800138000',convert(varchar(100),getdate(),121),getdate(),
--
1,'EIE','01','0','',0,'0',0,getdate(),0,0,0,0,0,0)


            
--修改华夏基金MT表
            select @v_cmd = 'update OpenQuery(wxtl_test, ''select SEND_STATUS from wxtlplatform.send where send_id = ' + 
                         
@v_send_id + ''') set SEND_STATUS=2'


            
PRINT @v_cmd
            
--exec(@v_cmd)

            
--游标移动
            fetch next from cur_mt into @v_send_id,@v_mobile,@v_send_msg,@v_sys_id
        
end
    
close cur_mt
    
deallocate cur_mt
end



GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

posted @ 2008-02-28 16:27 一凡 阅读(303) | 评论 (0)编辑 收藏
1、对远程表执行 UPDATE、 INSERT, 或 DELETET
update openquery(linked1, 'select ssn from testlinked where ssn=2')
set ssn=ssn + 1
insert openquery(linked1, 'select ssn from testlinked where 1=0'values (1000)
delete openquery(linked1, 'select ssn from testlinked where ssn>100')

2、使用 OpenQuery 动态执行

begin tran
SET QUOTED_IDENTIFIER OFF
SET XACT_ABORT ON
declare @cmd varchar(2500
declare @cmd1 varchar(2500
declare @var varchar(20
set @var = 'White' 
declare @var1 varchar(20
set @var1 = 'White1' 
declare @var2 varchar(20
set @var2 = 'Johnson1'

select @cmd = "Update openquery(linked1,'select au_lname, au_fname from pubs.dbo.authors
where au_lname = 
''" + @var + "''' )
set au_lname = '" + @var1 + "',
au_fname 
= '" + @var2 + "'"

exec ( @cmd )

commit tran
select * from <servername>.pubs.dbo.authors

posted @ 2008-02-28 10:54 一凡 阅读(4369) | 评论 (0)编辑 收藏
1:使用SHOW语句找出在服务器上当前存在什么数据库:
  mysql> SHOW DATABASES;
2:创建一个数据库MYSQLDATA
  mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
  mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
  mysql> SHOW TABLES;
5:创建一个数据库表
  mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
  mysql> DESCRIBE MYTABLE;
7:往表中加入记录
  mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
  mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
  mysql> use database;
  mysql> source d:/mysql.sql;
10:删除表
  mysql> drop TABLE MYTABLE;
11:清空表
  mysql> delete from MYTABLE;
12:更新表中数据
  mysql> update MYTABLE set sex="f" where name=hyq;



此外,Linux下经常使用的命令:

 

1:导入数据库备份文件的方法:
  root: mysql –u数据库帐户 –p密码 数据库名 < .sql备份文件
2:MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下:
  mysql> grant all privileges on 数据库名.* to 用户名@localhost identified by “密码”;
3:清空文件内容:
  cat /dev/null > 文件名
4:添加帐户:
  useradd 用户名 –d 目录名 –s /sbin/nologin(不允许该用户直接登录服务器)
5:设置帐户密码
  passwd 用户名



特别注意:
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD(newpassword) where User=root;

 

引用
作者: 郝聪
原载: 黑色梦中SEO博客
版权所有,转载时请注明作者并以链接形式标注原始出处!
posted @ 2008-02-27 10:15 一凡 阅读(223) | 评论 (0)编辑 收藏

引用:http://epub.itpub.net/4/8.htm

有两种方法:(推荐使用第二种)

1、在查询分析器中执行sp_addlinkedserver

   USE master

   GO

   EXEC sp_addlinkedserver

      @server = 'xzh.world',       --ORACLE链接服务器的名称

      @srvproduct = 'Oracle',      --固定不变的

      @provider = 'MSDAORA',       --固定不变的

      @datasrc = 'xzh.world'       --Net8中的服务器别名(网络服务名)

 

2、在企业管理器中

 

   1)在sql server2000 的企业管理器里面, 找到安全性->链接服务器->新建
2)在新建对话框"常规"选项卡里面, 选择Microsoft ole db provider for oracle驱动. 产品名称固定填为"Oracle", 数据源就是上面建立的网络名称ora. 提供程序字符串填为 "MSDAORA".
3)在新建对话框"安全性" 选项卡里面, 选择" 用此安全上下文进行:", 输入oracle9i server为你分配的用户名和密码.
4)在"常规"选项卡里面输入你为该链接服务器取的名称



3、如何引用ORACLE链接服务器中的数据

  

Select  top 10 * from OpenQuery(linkname, 'Select * from user.tablename')

 

(END)



posted @ 2008-02-19 17:54 一凡 阅读(870) | 评论 (0)编辑 收藏
    通过jxl.jar读写Excel:
package com.pub.util;

import java.io.File;
import java.io.IOException;
import java.util.Vector;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExlUtil {

    
public static Vector readExl(String fileName) {
        Vector vec1 
= null;
        Vector vec2 
= new Vector();
        File f 
= new File(fileName);

        
try {
            
// 构建Workbook对象, 只读Workbook对象
            Workbook workbook = Workbook.getWorkbook(f);
            
// 获取第一张Sheet表
            Sheet sheet = workbook.getSheet(0);
            
// 获取行数
            int rows = sheet.getRows();
            
// 获取列数
            int columns = sheet.getColumns();
            
for (int i = 0; i < rows; i++) {
                vec1 
= new Vector();
                
for (int j = 0; j < columns; j++) {
                    
// 获取j列i行的值
                    String cbxmdm = sheet.getCell(j, i).getContents();
                    
if (cbxmdm == null)
                        cbxmdm 
= "";
                    vec1.add(cbxmdm);
                }
                
if (vec1 != null)
                    vec2.add(vec1);
            }
        } 
catch (BiffException e) {
            e.printStackTrace();
        } 
catch (IOException e) {
            e.printStackTrace();
        }
        
return vec2;

    }

    
public static void writeExl(String fileName, Vector vec) {
        WritableWorkbook book 
= null;
        WritableSheet sheet 
= null;
        
try {
            book 
= Workbook.createWorkbook(new File(fileName));

            
// 生成名为“第一页”的工作表,参数0表示这是第一页
            sheet = book.createSheet("第一页"0);

            
// 打开文件
            for (int i = 0; i < vec.size(); i++) {
                
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
                Vector vec2 = (Vector) vec.get(i);
                
for (int j = 0; j < vec2.size(); j++) {
                    
// 第i行第j列
                    Label label = new Label(j, i, (String) vec2.get(j));
                    
// 将定义好的单元格添加到工作表中
                    sheet.addCell(label);
                }
            }
            
// 写入数据并关闭文件
            book.write();
            book.close();

        } 
catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
public static void main(String[] args) {
        ExlUtil.writeExl(
"f:/new.xls", ExlUtil.readExl("f:/xx.xls"));
    }
}


posted @ 2008-01-21 16:37 一凡 阅读(386) | 评论 (0)编辑 收藏

seq命令的作用就是打印出一串有序的数字,它主要有以下3个参数构成:

       -f, --format=FORMAT 
              use printf style floating-point FORMAT (default: %g)

-f 指定打印的格式:
例如:
[root@hao32]# seq -f %05g 2 7 
00002
00003
00004
00005
00006
00007

       -s, --separator=STRING
              use STRING to separate numbers (default: \n)
-s 指定分隔符 默认是回车:
例如:
[root@hao32]# seq -s" " 2 7
2 3 4 5 6 7

       -w, --equal-width
              equalize width by padding with leading zeroes
-w 输出是同宽 前面不足的用 "0" 补全,即与位数最多的数对齐
例如:
[root@hao32]# seq -w 2 11
02
03
04
05
06
07
08
09
10
11


欢迎转载本文,请注明来自:http://www.linuxsense.org
posted @ 2008-01-09 15:43 一凡 阅读(1604) | 评论 (0)编辑 收藏

       2007年终于过去了,不管怎么样都过去了,我应该向前看,向前看,向着以后美好的生活奋斗!

posted @ 2008-01-02 17:03 一凡 阅读(221) | 评论 (0)编辑 收藏
      我使用的是GlassFish-v2-b58g和resin-3.1.2,在相同的应用和网络环境下处理5000次请求用时情况如下:
      GlassFish : 12分1秒
     
[mobzc@mobzcdb prodlog]$ head -1 prod_info.log 
[
2007-12-04 15:17:48]http://000.000.000.000:8080/wealth_club/test.php?method=test
[mobzc
@mobzcdb prodlog]$ tail -1 prod_info.log 
[
2007-12-04 15:29:49]http://000.000.000.000:8080/wealth_club/test.php?method=test
      Resin:      1小时42秒

[mobzc@mobzcdb prodlog]$ head -1 prod_info.log 
[
2007-12-04 15:35:58]http://000.000.000.000:8080/wealth_club/test.php?method=test
[mobzc
@mobzcdb prodlog]$ tail -1 prod_info.log 
[
2007-12-04 16:36:40]http://000.000.000.000:8080/wealth_club/test.php?method=test

posted @ 2007-12-04 16:55 一凡 阅读(499) | 评论 (0)编辑 收藏
一、下载GlassFish
   https://glassfish.dev.java.net/downloads/v2-b41d.html

二、安装
 
  1、需要JDK1.5 如果没有请下载
  2、解压
     %java -Xmx256m -jar filename.jar
  3、进入glassfilsh目录
     % cd glassfish
  4、在setup.xml里设置端口:
    <property name="admin.port" value="4848"/>
    <property name="instance.port" value="8080"/>
    <property name="orb.port" value="3700"/>
    <property name="imq.port" value="7676"/>
    <property name="https.port" value="8181"/>
   其中admin.port是管理后台端口,用户名/密码:admin/adminadmin
       instance.port是http端口
  5、安装
    UNIX:
    % chmod -R +x lib/ant/bin
    % lib/ant/bin/ant -f setup.xml
    windows:
    % lib/ant/bin/ant -f setup.xml
  6、GlassFish 集群安装,用下面的命令
    UNIX:
    % lib/ant/bin/ant -f setup-cluster.xml
    Windows:
    % lib\ant\bin\ant -f setup-cluster.xml
三、GlashFish启动和关闭命令
   ./bin/asadmin start-domain domain1
   ./bin/asadmin stop-domain domain1

四、应用部属
     有4种方式:
     1、可以直接将war或ear放在glassfish/domain/domain1/autodeploy目录下,glassfish启动后会自动部署
     2、是通过命令asadmin deploy部署应用, 另外 asadmin updeploy 卸载应用
        通过asadmin deploy --help 和 asadmin undeploy --help 获得更多帮助
     3、通过glassfish管理控制台
     4、目录部属方式:即将WEB应用目录直接copy到glassfish/domains/domain1/applications/下
        然后通过命令:glassfish/bin/asadmin deploydir full_path/applications/your_app

参考:

     用 GlassFish v2 替换 Tomcat 5.x 

   在Glassfish上部署web应用

posted @ 2007-12-04 16:21 一凡 阅读(6755) | 评论 (3)编辑 收藏
存储过程出下:(注:我使用的是oracle 10g)
 
procedure aaaa(i_vc2mob      in varchar2--用户号码
                         i_NUMSVCID    in PLS_INTEGER default null--SERVICECODEID
                         i_prodid      in PLS_INTEGER default null--产品ID
                         i_disordsrc   in PLS_INTEGER, --退定来源
                         i_disordsrcid in NUMBER--退定来源ID
                         i_datdisorder in date default sysdate, --退定时间
                         o_prodid      out PLS_INTEGER, --返回产品ID 
                         o_level       out PLS_INTEGER, --返回用户级别
                         o_flag        out PLS_INTEGER --返回状态
                         ) is



在java中调用正确调用方法:
{call aaaa('13472622059',1,1,21,4712032059528901,'',?,?,?)}

如果这样写
{call aaaa('13472622059',1,1,21,4712032059528901,,?,?,?)}
就报如下异常:
java.sql.SQLException: ORA-06550: 第 1 行, 第 67 列:
PLS-00103: 出现符号 ","在需要下列之一时:
 ( - + case mod new not null
   others <an identifier> <a double-quoted delimited-identifier>
   <a bind variable> avg count current exists max min prior sql
   stddev sum variance execute forall merge time timestamp
   interval date
   <a string literal with character set specification>
   <a number> <a single-quoted SQL string> pipe
   <一个带有字符集说明的可带引号的字符串文字>
   <一个可带引号的 SQL 字符串>
符号 "null" 被替换为 "," 后继续。

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:215)
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:954)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4223)
    at com.pub.comm.db.DBDeal.callProcedures2(DBDeal.java:36)
    at com.pub.comm.db.Test.<init>(Test.java:15)
    at com.pub.comm.db.Test.main(Test.java:29)

posted @ 2007-12-03 21:07 一凡 阅读(21885) | 评论 (0)编辑 收藏
仅列出标题
共21页: First 上一页 10 11 12 13 14 15 16 17 18 下一页 Last