zoukankan      html  css  js  c++  java
  • sqlserver转mysql

    昨天朋友问我sqlserver转mysql杂么弄,我说百度呀,结果百度一顿还是有些问题 最后写了个脚本转换一下 顺便自己也学习一下shell脚本

    笔记先贴这里 后续整理一下

    USE [huaxindev]
    GO
    /****** Object:  Table [dbo].[JCRttt]    Script Date: 06/06/2013 18:14:22 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO    CREATE TABLE
    CREATE TABLE [dbo].[JCRttt](
    	[RtyID] [varchar](20) NOT NULL,
    	[CaseNo] [varchar](20) NULL,
    	[RiskReCode] [char](10) NULL,
    	[Money] [numeric](16, 2) NULL,
     CONSTRAINT [PK_JCRESPONBILITY] PRIMARY KEY NONCLUSTERED 
    (
    	[ResponsibilityID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    /****** Object:  Table [dbo].[JCReee]    Script Date: 06/06/2013 18:14:22 ******/
    

     脚本如下

    #!/bin/bash
    PROJECT_NAME=$1
    NAME0="\/\*\*\*\*\*\*"
    NAME3='CREATE TABLE '
    NAME1='CONSTRAINT'
    NAME2='\*\*\*\*\*\*\/'
    NAME4="print 'Processed"
    NAME5="INSERT"
    NAME5="INSERT"
    
    sed -i 's/\[dbo\].//g' $1
    
    sed -i 's/\[//g' $1
    
    sed -i 's/\]//g' $1
    
    echo *********快乐的分割线1*********
    beg=0
    end=0
    lastValue=0
    index=0
    
    value1=`grep "$NAME4" -n $1 | cut -d ":" -f1 | head -50000`
    echo value1=$value1
    for i in  $value1
    do    
        index=$(($index+1))
        
        beg=$(($i-1-$lastValue))
        #echo 开始:$beg
        
        end=$(($beg+1))    
        #echo 结束:$end
        
        lastValue=$(($lastValue+$end-$beg+1))
        #echo lastValue=$lastValue
        
        echo begin:$index 开始:$beg 结束:$end
        b=$(($beg))
        e=$(($end))
        sed -n "$b p" $1 
        sed -n "$e p" $1 
    
        sed -i "${beg},${end}d" $1
    
        
    done
    
    echo *********快乐的分割线2*********
    beg=0
    end=0
    lastValue=0
    index=0
    
    value1=`grep "$NAME0" -n $1 | cut -d ":" -f1 | head -50000`
    echo value1=$value1
    value2=`grep "$NAME3" -n $1 | cut -d ":" -f1 | head -50000`
    echo value2=$value2
    for i in  $value1
    do
        index=$(($index+1))
        
        beg=$(($i+1-$lastValue))    
        #echo 开始:$beg
        
        for j in $value2
        do 
            if [ $j -gt $i ]; then            
                end=$j
                break;
            fi
        done
        
        end=$(($end-1-$lastValue))    
        #echo 结束:$end
        
        lastValue=$(($lastValue+$end-$beg+1))
        #echo lastValue=$lastValue
    
        echo begin:$index 开始:$beg 结束:$end
        b=$(($beg-1))
        e=$(($end+1))
        sed -n "$b p" $1 
        sed -n "$e p" $1 
        #echo end:$index
        
        if [ $end -le $beg ]; then    
                echo xxxxxxxxxxxxxxxxxxxxxx wrong msg xxxxxxxxxxxx
                echo 开始:$beg    
                echo 结束:$end    
                echo testssslastValue=$lastValue
        fi
        sed -i "${beg},${end}d" $1
    done
    
    sed -i 's/\/\*\*\*\*\*\*/INSERT_FUCK\/\*\*\*\*\*\*/g' $1
    
    echo *********快乐的分割线3*********
    beg=0
    end=0
    lastValue=0
    index=0
    
    value1=`grep "$NAME1" -n $1 | cut -d ":" -f1 | head -50000`
    echo value1=$value1
    value2=`grep "$NAME5" -n $1 | cut -d ":" -f1 | head -50000`
    echo value2=$value2
    for i in  $value1
    do
        index=$(($index+1))
        beg=$(($i-$lastValue))    
        #echo 开始:$beg
        
        for j in $value2
        do 
            if [ $j -gt $i ]; then            
                end=$j
                break;
            fi
        done
        
        end=$(($end-1-$lastValue))    
        #echo 结束:$end
        
        lastValue=$(($lastValue+$end-$beg+1))
        #echo lastValue=$lastValue
    
        echo begin:$index 开始:$beg 结束:$end
        b=$(($beg))
        e=$(($end))
        sed -n "$b p" $1 
        sed -n "$e p" $1 
        #echo end:$index
        
        if [ $end -le $beg ]; then    
                echo xxxxxxxxxxxxxxxxxxxxxx wrong msg xxxxxxxxxxxx
                echo 开始:$beg    
                echo 结束:$end    
                echo testssslastValue=$lastValue
        fi
        sed -i "${beg},${end}d" $1
    done
    
    echo *********快乐的分割线4*********
    
    
    sed -i 's/INSERT/;INSERT/g' $1
    
    sed -i 's/\/\*\*\*\*\*\*/;\/\*\*\*\*\*\*/g' $1
    
    sed -i 's/INSERT_FUCK;//g' $1
    
    
    echo *********我日还有2种手动替换吧 麻烦死了*********
    好记性不如烂博客
  • 相关阅读:
    Theme.AppCompat.Light报错
    在Eclipse添加Android兼容包( v4、v7 appcompat )
    如何从Eclipse导入github上的项目源码
    一个C#多线程的工作队列
    是否需要手动执行DataContext的Dispose方法?
    Unity3d 销毁
    Unity3d 碰撞检测
    unity3d 鼠标事件
    Unity3d 刚体
    unity3d 让物体移动到点击位置
  • 原文地址:https://www.cnblogs.com/huazaizai/p/3125634.html
Copyright © 2011-2022 走看看