在与远程数据库交互的 python 应用程序中解释数据库驱动程序、库、dll 的必要性?
Explain the necessity of database drivers, libraries, dlls in a python application that interacts with a remote database?
我编写了一个 python 连接到远程 Oracle 数据库并将一些数据插入其表中的脚本。
在这个过程中,我必须先导入 cx_Oracle 包并在我的本地计算机上安装 Oracle InstantClient 才能正确执行脚本。
我不明白的是为什么我必须安装InstantClient?
我试图通读文档,但我相信我缺少对数据库如何工作和通信的一些基本理解。
为什么我需要所有外部 drivers、dll、库才能使 python 脚本能够与远程数据库通信?我相信这会使 python 可执行文件的打包和分发变得更加困难。
还有什么是 InstantClient 呢?
是 driver 吗?什么是 driver?它只是 "programs" 中的 collection 知道如何与 Oracle 数据库通信吗?如果是这样,为什么不能通过简单导入 python 包来实现?
这听起来好像我事先没有做自己的研究,但很抱歉,我试过了,就像我说的,我相信我缺少一些基本的基础知识。
我们有一组驱动程序,可让您与 Oracle 数据库进行通信。其中大部分是 'wrappers' 搭载在 Oracle 客户端上的那种。使用我们称为 'Oracle Net'(不要与 .NET 混淆)的东西与 Oracle 一起工作的已编译 C 二进制文件。
因此,我们的 python、php、perl、odbc 等驱动程序都是编写的小程序,可用于利用您系统上的 Oracle 客户端。
Oracle 客户端不仅仅是一个驱动程序。它可以包括用户界面,例如 SQL*Plus、SQL*Loader 等。或者它可以只是一组驱动程序——这取决于您选择下载和安装的具体包。说到 'install' - 如果您获取 Instant Client,则无需安装任何内容。您只需解压缩它并适当地更新您的环境路径位,以便可以加载驱动程序。
我编写了一个 python 连接到远程 Oracle 数据库并将一些数据插入其表中的脚本。
在这个过程中,我必须先导入 cx_Oracle 包并在我的本地计算机上安装 Oracle InstantClient 才能正确执行脚本。
我不明白的是为什么我必须安装InstantClient? 我试图通读文档,但我相信我缺少对数据库如何工作和通信的一些基本理解。
为什么我需要所有外部 drivers、dll、库才能使 python 脚本能够与远程数据库通信?我相信这会使 python 可执行文件的打包和分发变得更加困难。 还有什么是 InstantClient 呢? 是 driver 吗?什么是 driver?它只是 "programs" 中的 collection 知道如何与 Oracle 数据库通信吗?如果是这样,为什么不能通过简单导入 python 包来实现?
这听起来好像我事先没有做自己的研究,但很抱歉,我试过了,就像我说的,我相信我缺少一些基本的基础知识。
我们有一组驱动程序,可让您与 Oracle 数据库进行通信。其中大部分是 'wrappers' 搭载在 Oracle 客户端上的那种。使用我们称为 'Oracle Net'(不要与 .NET 混淆)的东西与 Oracle 一起工作的已编译 C 二进制文件。
因此,我们的 python、php、perl、odbc 等驱动程序都是编写的小程序,可用于利用您系统上的 Oracle 客户端。
Oracle 客户端不仅仅是一个驱动程序。它可以包括用户界面,例如 SQL*Plus、SQL*Loader 等。或者它可以只是一组驱动程序——这取决于您选择下载和安装的具体包。说到 'install' - 如果您获取 Instant Client,则无需安装任何内容。您只需解压缩它并适当地更新您的环境路径位,以便可以加载驱动程序。