怎样直接连接SAP数据库

SAP的数据库是ORACLE的,在外部程序中知道数据库的用户名,密码和地址可以连上,为什么用SQL语句select表时提示表不存在?其实是存在的.请高手指教,但不要说为什... SAP 的数据库是ORACLE的, 在外部程序中知道数据库的用户名,密码和地址可以连上, 为什么用SQL 语句select 表时 提示表不存在?其实是存在的.
请高手指教, 但不要说为什么要直接访问的问题了, 肯定是有必要的.比如有一个自定义表, 读取数据是34万条, 如果用RFC 等其它手段读取放到excel中指定的位置时根本会死机的,因为要循环, 但如果用数据访问方式再用VBA 代码的CopyFromRecordset 方法, 可以8秒中搞定.
展开
 我来答
匿名用户
2015-05-24
展开全部
必须要通过接口的方式。以VB为例,假如要读取库存数据,你可以通过BAPI的方式。以下代码供你参考

'Set gboSAPusr = goBapiCtrl.GetSAPObject("Material", Name;"PLANT",plant;"STGE_LOC", STGE_LOC; "UNIT",unit)
gboSAPusr.AVAILABILITY Return:=oReturn, MaterialGeneralData:=oMaterialData

GetSAPStock = oMaterialData.Value("WKBST")
更多追问追答
追问
接口方式肯定是不行的, 因为数据量大, 有几十万甚至上百万, 如果取得RFC 或BAPI返回的结果再去循环每一条然后放到EXCEL的行中, 会死机的. 如果用数据库查询然后用VBA 的CopyFromRecordset方法, 就相当于把数据粘贴在EXCEL 中, 很快.
追答
1,如果你有见过哪个第3方软件是可以实时批量读取SAP数据的?可以向他们请教。
2,我采用的方法是,先构造自已的数据库,然后是一次性通过下载方式导出Table的内容到自己的数据库里面,然后定义每天的 backgroud job 去做比较,如果不一致,就更新自己的Table. 这样你就可以在自己的数据库里面做批量操作了,例如批量的查询,修改等。
3,BW, APO是典型的第3方的系统,尽管他们本身也是SAP的产品,他们也是定义自己的数据库,并且每天去跑background job 去读取数据来保证2个系统的数据是一致的。还有一些第3方的软件,例如仓库管理RF之类的,他们没有自己的数据库,所以只能做单个记录的查询和更新,你有见过他们提供批量报表查询的功能吗?
4,你如果有几十到几百万条记录,我建议不要用Excel来做数据库,或者直接用VBA编程的。因为数据量太大。
万山数据
2024-11-14 广告
实时数据仓库是北京万山数据科技有限公司重要的数据处理与存储解决方案。它专注于实时或近实时地捕获、存储和管理数据流,确保数据的高时效性和准确性。通过先进的数据处理技术和高效的存储架构,实时数据仓库能够支持复杂的数据分析需求,为企业决策提供即时... 点击进入详情页
本回答由万山数据提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式