informix sp call csh时,出错,原因是csh文件上传时格式不对

本文详细阐述了在使用FTP上传文件时遇到的不可见字符问题,包括文本模式与二进制模式的区别,以及如何根据不同服务器端模式正确选择上传模式。通过案例分析,最终确定问题源于文件上传模式不正确,导致csh环境变量设置无法生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前有发生过下面的问题,如下方法是解决了。
        informix 的Sp(store procedure)中的system命令无法正常执行
       原因: 有可能是使用了其他用户把数据库服务器启动起来了。
       解决方法: 需要用informix用户去重新启动才是可以的。

但是,最近,又发生类似的问题,使用上面的方法,没有办法解决。 继续深究下去,
实际上,system命令是已经正常执行了,但是,csh中的设置环境变量的source命令无法正常执行并生效。
怀疑可能是以下的问题:
    1、用户的初始shell模式不对(原为bsh,后改为csh),
    2、为文件的用户权限问题
    3、为csh中或环境设置文件中的语法问题

上述的疑问都一一排除后,最后确定原因是csh文件上传时格式不对。
因为从别的服务器上下载下来的时候,使用了文本模式,而上传的时候,也是使用了文本模式,
这样,csh文件中会有不可见的字符,使用vi编辑也看不到。正常来讲,以前在unix中是可以看见^M的,但这次在linux中却看不到。

ftp进行文件上传的时候,大多数系统有两种模式:文本模式和二进制模式。
文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。  
 二进制模式用来传送可执行文件,压缩文件,和图片文件。如果你用ASCII模式传,会显示一堆乱码,你必须重新用BINARY模式传。用HTML和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。
在日文系统中,文本模式还分为Euc以及Jis两种格式。window这边正常都是Jis格式的,这个时候,就要根据服务器端的格式,来判断是要使用哪一种。如果服务器端是Euc的话,一般就采用Euc格式,如果是Jis的话,就采用Jis格式。

其他的感悟:
       这次这个错误,我们试了很多的方法去排除,花了很多的时间。 最后比较大的感悟来讲,就是在试了一些通常的做法之后,如果还是不行的话,就不能相信我们眼睛看到的。因为计算机中有一些是不可见的字符,有时候,就是这些东西在作怪。
       最简单的办法就是,新建文件,自己从头开始输入命令。然后进行验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值