ORA-03113:通信通道的文件结尾-完美解决方案
Posted linbobo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-03113:通信通道的文件结尾-完美解决方案相关的知识,希望对你有一定的参考价值。
利用FTP服务器下载目录
import os,sys from ftplib import FTP from mimetypes import guess_type nonpassive = False #passive FTP by default remotesite = ‘192.168.191.1‘ remotedir = ‘.‘ #FTP的路径 remoteuser = () #因为我没设置密码,所以为空集 localdir = ‘.‘ #本地路径 clean_all = input( ‘Clean local directory first? ‘)[:1] in [‘y‘,‘Y‘] #是否清除本地目录所有文件 #连接PFTP print(‘connecting...‘) connection = FTP(remotesite) connection.login(*remoteuser) connection.cwd(remotedir) if nonpassive: connection.set_pasv(False) #most servers do passive #清除 if clean_all: for localname in os.listdir(localdir): try: print(‘deleting local‘,localname) os.remove(os.path.join(remotedir,localname)) except: print(‘cannot delete‘, localname) count = 0 remotefiles = connection.nlst() #只能下载目录中的文件,不能下载目录中的目录 for remotename in remotefiles[:5]: if remotename in (‘.‘,‘..‘) or not ‘.‘ in remotename:continue #判断是否目录,这里根据实际情况更改 mimetype,encoding = guess_type(remotename) mimetype = mimetype or ‘?/?‘ mimetype = mimetype.split(‘/‘)[0] localpath = os.path.join(localdir,remotename) print(‘downing‘,remotename,‘to‘,localpath,end=‘ ‘) print(‘as‘,mimetype,encoding or ‘‘) #保存文件 if mimetype == ‘text‘ and encoding == None: localfile = open(localpath,‘w‘,encoding=connection.encoding) callback = lambda line: localfile.write(line + ‘\n‘) connection.retrlines(‘RETR ‘+remotename,callback) else: localfile = open(localpath,‘wb‘) connection.retrbinary(‘RETR ‘+remotename,localfile.write) localfile.close() count += 1 connection.quit() print(‘Done:‘,count,‘file download.‘)
利用FTP服务器上传目录
import os,sys from ftplib import FTP from mimetypes import guess_type nonpassive = False #passive FTP by default remotesite = ‘192.168.191.1‘ remotedir = ‘RRR‘ #FTP的路径 remoteuser = () #因为我没设置密码,所以为空集 localdir = ‘TTT‘ #本地路径 clean_all = input( ‘Clean local directory first? ‘)[:1] in [‘y‘,‘Y‘] #是否清除远程目录所有文件 #连接PFTP print(‘connecting...‘) connection = FTP(remotesite) connection.login(*remoteuser) connection.cwd(remotedir) if nonpassive: connection.set_pasv(False) #most servers do passive #清除 if clean_all: for remotename in connection.nlst(): try: print(‘deleting local‘,remotename) connection.delete(remotename) except: print(‘cannot delete‘, remotename) count = 0 localfiles = os.listdir(localdir) #只能下载目录中的文件,不能下载目录中的目录 for localname in localfiles[:5]: mimetype,encoding = guess_type(localname) mimetype = mimetype or ‘?/?‘ mimetype = mimetype.split(‘/‘)[0] localpath = os.path.join(localdir,localname) print(‘downing‘,localname,‘to‘,localpath,end=‘ ‘) print(‘as‘,mimetype,encoding or ‘‘) #保存文件 if mimetype == ‘text‘ and encoding == None: localfile = open(localpath,‘rb‘) connection.storlines(‘RETR ‘+localname,localfile) else: localfile = open(localpath,‘rb‘) connection.storbinary(‘RETR ‘+localname,localfile) localfile.close() count += 1 connection.quit() print(‘Done:‘,count,‘file uploaded.‘)
以上是关于ORA-03113:通信通道的文件结尾-完美解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾
ORA-03113: 在 os_command.exec 被重定向到标准输出之后,通信通道上的文件结尾