提取本地所有表某一天的数据压缩成文件上传到远程服务器怎么实现?(在线等待)

时间:2022-10-15 13:32:48
第一个问题:如何提取本地所有表某一天的数据(用何种方法、何种命令)?


   第二个问题:压缩文件以哪种方式比较好?

   第三个问题:服务器如何将收到数据倒入到各个数据表中(具体到命令)

   第四个问题:服务器如果是如何辨别收到的数据是重复数据

   这是我实在急需解决的问题,希望各位高手指教

   高分回报,分不够再加。

26 个解决方案

#1


在线等待。。。。

#2


怎么没人回答?

#3


可以在pb中将数据save as 成文本文件,然后压缩上传,再在pb中导入。很方便。

#4


可否具体一点,我用的是delphi

#5


我用的是pb65
进入之后你在图标上选db profile
在oracle7。3上选new
然后在第一行随便取个名字。
server :@database
login id:
password:
应该知道怎么填吧。
然后第二页第一行填上面的login id
确定连接。
然后回到主画面,选database
选择表。
然后选择工具栏上的放大镜浏览
然后在文件菜单中选save row as
选择text类型就好了。

#6


楼上可否具体一点
save as 在delpi中如何使用

#7


导入的时候浏览表
然后再row菜单中选择import
就好了。

#8


楼上可是用手工?
我是要在程序中自动执行导出,导入工作
怎么实现

#9


怎么没人回答了?

#10


我也想知道,我给你顶一下!!!

#11


那你最好用数据库提供的功能了吧

#12


请高手回答

#13


hlooo(天穹飞雨) 用户数据库如何实现?

#14


因为我也是刚学oracle不是很清楚。
但是我知道可以定时让oracle自动传输数据,应该有高手可以解答的吧。

#15


还没人回答吗?

#16


1、你的第一个问题应该到Delphi论坛去问。

2、第二个问题可以调用WINZIP解压缩。

3、第三个问题,导入可以用Oracle中的Sqlloader执行导入,在Delphi中调用:sqlldr userid=用户名/密码 control=.ctl文件 log=log文件 
注:首先要建一个CTL文件,具体请参见www.oradb.net中:如何导入Excel文件。

4、第四个问题,可以用主键或唯一索引拦截,也可以考虑在表中加表记字段,在此只提供思路。

#17


据我所知

只能是写程序实现
1。本地服务器生成txt文件
2。调用zip函数
3。控件send文件(确保数据可靠性,一般使用中间件)
4。远端服务器recv文件
5。执行sql*loader导入文件

#18


用CutFTP32上傳吧, 不過那是在Oracle Develepor中我們是這樣做的.

#19


试着回答一下第一三和第四个问题,方法很笨,但还算管用。
1 将今天所有表的MAX(rowid)保存下来 如:
select max(rowid) from table1;
取到MAX(rowid),并保存到一表maxrowid中.
2 根据昨天的MAX(rowid)取得新数据.
select * from table1 where rowid>=昨天的MAX(rowid).
取得结果集,保存,压缩,上传....

3 取得今天的MAX(rowid),更新表maxrowid中对应TABLE1表的MAX(rowid).

假设存为文本文件,用SQLLOAD就可以导入,或者用程序分别取出文件的中的字段,再用INSERT插入.

这样的话,就不会出现重复记录了.


但从你的说明上来看,你的远程机和服务器是在同一网络上,这样的话,你在远程机上设一个数据库别名,就可以直接用SQL语句来取新数据了.

#20


非常感谢zhangshunshi(宇轩) 、 zzzsssccc(籍秋风) 、comcn(大XX) 、shi11() 的回答。我受益匪浅
    通过你们的回答,我明确了思路
       1。WINZIP压缩
       2。 Sqlloader执行导入
       3。主键或唯一索引拦截重复记录
    第一个问题还没思路
          如何提取本地“所有表”“某一天”的数据(用何种方法、何种命令)?
          用spool?
          还是其他?
          用什么方法更好?

#21


非常感谢zhangshunshi(宇轩) 、 zzzsssccc(籍秋风) 、comcn(大XX) 、shi11() 的回答。我受益匪浅
    通过你们的回答,我明确了思路
       1。WINZIP压缩
       2。 Sqlloader执行导入
       3。主键或唯一索引拦截重复记录
    第一个问题还没思路
          如何提取本地“所有表”“某一天”的数据(用何种方法、何种命令)?
          用spool?
          还是其他?
          用什么方法更好?

#22


use database link

#23


sun9989(一品黄山) use database link 好像对局域网或者(vlan)有用,
我的客户端和远程是通过电话连接把数据传过去,所以客户端只有把“所有表”“某一天”的数据传到服务器,只好先导出,服务器再导入。
   关键是导出除了用spool外还有没有更好的方法?

#24


你如果用PB的话这个问题就很好解决了,PB的数据窗口导出成文本文件比较方便

#25


delphi呢?

#26


非常感谢!给分了

#1


在线等待。。。。

#2


怎么没人回答?

#3


可以在pb中将数据save as 成文本文件,然后压缩上传,再在pb中导入。很方便。

#4


可否具体一点,我用的是delphi

#5


我用的是pb65
进入之后你在图标上选db profile
在oracle7。3上选new
然后在第一行随便取个名字。
server :@database
login id:
password:
应该知道怎么填吧。
然后第二页第一行填上面的login id
确定连接。
然后回到主画面,选database
选择表。
然后选择工具栏上的放大镜浏览
然后在文件菜单中选save row as
选择text类型就好了。

#6


楼上可否具体一点
save as 在delpi中如何使用

#7


导入的时候浏览表
然后再row菜单中选择import
就好了。

#8


楼上可是用手工?
我是要在程序中自动执行导出,导入工作
怎么实现

#9


怎么没人回答了?

#10


我也想知道,我给你顶一下!!!

#11


那你最好用数据库提供的功能了吧

#12


请高手回答

#13


hlooo(天穹飞雨) 用户数据库如何实现?

#14


因为我也是刚学oracle不是很清楚。
但是我知道可以定时让oracle自动传输数据,应该有高手可以解答的吧。

#15


还没人回答吗?

#16


1、你的第一个问题应该到Delphi论坛去问。

2、第二个问题可以调用WINZIP解压缩。

3、第三个问题,导入可以用Oracle中的Sqlloader执行导入,在Delphi中调用:sqlldr userid=用户名/密码 control=.ctl文件 log=log文件 
注:首先要建一个CTL文件,具体请参见www.oradb.net中:如何导入Excel文件。

4、第四个问题,可以用主键或唯一索引拦截,也可以考虑在表中加表记字段,在此只提供思路。

#17


据我所知

只能是写程序实现
1。本地服务器生成txt文件
2。调用zip函数
3。控件send文件(确保数据可靠性,一般使用中间件)
4。远端服务器recv文件
5。执行sql*loader导入文件

#18


用CutFTP32上傳吧, 不過那是在Oracle Develepor中我們是這樣做的.

#19


试着回答一下第一三和第四个问题,方法很笨,但还算管用。
1 将今天所有表的MAX(rowid)保存下来 如:
select max(rowid) from table1;
取到MAX(rowid),并保存到一表maxrowid中.
2 根据昨天的MAX(rowid)取得新数据.
select * from table1 where rowid>=昨天的MAX(rowid).
取得结果集,保存,压缩,上传....

3 取得今天的MAX(rowid),更新表maxrowid中对应TABLE1表的MAX(rowid).

假设存为文本文件,用SQLLOAD就可以导入,或者用程序分别取出文件的中的字段,再用INSERT插入.

这样的话,就不会出现重复记录了.


但从你的说明上来看,你的远程机和服务器是在同一网络上,这样的话,你在远程机上设一个数据库别名,就可以直接用SQL语句来取新数据了.

#20


非常感谢zhangshunshi(宇轩) 、 zzzsssccc(籍秋风) 、comcn(大XX) 、shi11() 的回答。我受益匪浅
    通过你们的回答,我明确了思路
       1。WINZIP压缩
       2。 Sqlloader执行导入
       3。主键或唯一索引拦截重复记录
    第一个问题还没思路
          如何提取本地“所有表”“某一天”的数据(用何种方法、何种命令)?
          用spool?
          还是其他?
          用什么方法更好?

#21


非常感谢zhangshunshi(宇轩) 、 zzzsssccc(籍秋风) 、comcn(大XX) 、shi11() 的回答。我受益匪浅
    通过你们的回答,我明确了思路
       1。WINZIP压缩
       2。 Sqlloader执行导入
       3。主键或唯一索引拦截重复记录
    第一个问题还没思路
          如何提取本地“所有表”“某一天”的数据(用何种方法、何种命令)?
          用spool?
          还是其他?
          用什么方法更好?

#22


use database link

#23


sun9989(一品黄山) use database link 好像对局域网或者(vlan)有用,
我的客户端和远程是通过电话连接把数据传过去,所以客户端只有把“所有表”“某一天”的数据传到服务器,只好先导出,服务器再导入。
   关键是导出除了用spool外还有没有更好的方法?

#24


你如果用PB的话这个问题就很好解决了,PB的数据窗口导出成文本文件比较方便

#25


delphi呢?

#26


非常感谢!给分了