Oracle表结构转换SqlSERVER表结构&…
来源:互联网 发布:淘宝店铺平台收费标准 编辑:程序博客网 时间:2024/06/04 20:14
vi parameter.ini
#sysType---1:Linux;others:windows
sysType=1
#readFiledir is OldFile
readFiledir=/root/tmpmycnf/dbquery/yoon/oldfile
#writeFiledir is NewFile
writeFiledir=/root/tmpmycnf/dbquery/yoon/newfile
vi sql.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#Author:Yoon
#Version:1.0
#Date:2014-07-07
import os
import sys
classApplication(object):
def __init__(self):
self._oldFileDir = ''
self._newFileDir = ''
self._inifilename ='./parameter.ini'
self._start = 'false'
defreadInitFile(self,keyName):
data =open(self._inifilename,'r')
for line in data:
if keyName ==line.split('=')[0].strip():
returnline.split('=')[1].strip()
break
data.close()
defgetNewLine(self,oldLine):
if oldLine.strip().startswith('createtable'):
tablename =oldLine.strip().split('.')[1].strip()
newline = 'create table ' + tablename+ oldLine[-1]
else:
ifoldLine.strip().startswith('('):
newline = oldLine
elifoldLine.startswith(')'):
newline = 'null' + oldLine[-1] +oldLine + oldLine[-1]
self._start = 'false'
else:
strList = oldLine.split('')
newline = ''
for string in strList:
if string == '':
newline += ' '
elifstring.strip().upper().startswith('DEFAULT'):
continue
elif (string.upper() == 'NOT') or(string.upper() == 'NULL'):
continue
elifstring.upper().startswith('VARCHAR2'):
newline += 'varchar(' +str(int(string[string.find('(')+1:string.find(')')])*3) + ')'
elif (string.upper() == 'NUMBER') or(string.upper() == 'DATE') or (string.upper() == 'DATETIME') or(string.upper() == 'TIMESTAMP(6)') or (string.upper() =='INTEGER'):
newline += 'varchar(100)'
elif((string.upper().startswith('NUMBER')) or(string.upper().startswith('DATE')) or(string.upper().startswith('DATETIME')) or(string.upper().startswith('TIMESTAMP(6)')) or(string.upper().startswith('INTEGER'))) and (string[-1] =='\n'):
newline += 'varchar(100)'
elif(string.upper().startswith('NUMBER,')) or(string.upper().startswith('DATE,')) or(string.upper().startswith('DATETIME,')) or(string.upper().startswith('TIMESTAMP(6),')) or((string.upper().startswith('NUMBER(')) and (',' in string)) or((string.upper().startswith('NUMBER(')) and (',' in string)) or(string.upper().startswith('INTEGER,')):
newline += 'varchar(100)null'
elifstring.upper().startswith('NUMBER('):
newline +='varchar(100)'
else:
i = 0
while (1 == 1):
if strList[i] == '':
i += 1
else:
filedName=strList[i]
break
if string == filedName:
newline = string +newline
if ',' in string:
newline += 'null'+string[string.rfind(','):]
return newline
defcreateNewFileFromOldFile
readFileDir =self.readInitFile('readFiledir')
writeFileDir =self.readInitFile('writeFiledir')
sysType =self.readInitFile('sysType')
if sysType == '1':
sepStr = '/'
else:
sepStr = '\\'
listfile=os.listdir(readFileDir)
for file in listfile:
start = 'false'
writeFile =open(writeFileDir+sepStr+file, 'w')
readData =open(readFileDir+sepStr+file,'r')
for line in readData:
if line.lower().startswith('createtable'):
self._start = 'true'
if self._start=='true':
newLine =self.getNewLine(line)
writeFile.write(newLine)
readData.close()
writeFile.close()
app = Application()
app.createNewFileFromOldFile
[root@db01 ~]#
[root@yoon ~]# /usr/bin/python sql.py
- Oracle表结构转换SqlSERVER表结构&…
- SQLServer表结构转换成Oracle表结构
- SQLserver表结构操作
- sqlserver表结构查询
- SQLSERVER 复制表结构
- 查询SQLSERVER表结构
- sqlserver 导出表结构
- sqlserver 复制表结构
- Sqlserver 导出表结构
- Sqlserver表结构生成
- SqlServer 获取表结构
- sqlserver查看表结构
- sqlserver 获取表结构
- DB2\SQLSERVER\MYSQL\ORACLE数据库获取表结构
- sqlserver 查询表结构语句
- SqlServer修改表结构总结
- SqlServer修改表结构总结
- SQLSERVER 临时表结构脚本
- MySQL复制
- Oracle DBLINK 抽数以及…
- MySQL Server-id的作用
- MySQL 简洁连接数据库方式
- Oracle redo 日志切换时间频率
- Oracle表结构转换SqlSERVER表结构&…
- Oracle 将普通表转换为分区表
- ORA-14099 错误解决
- 审计
- oracle 表迁移方法 (二…
- oracle 表迁移方法 (一)
- Kill 所有MySQL进程
- Laravel 生成key
- oracle 表空间和表 read…