从excel文件编写脚本

从excel文件编写脚本,excel,oracle,import,Excel,Oracle,Import,我得到了一个大约6000行的excel文件,我需要编写一个脚本来更新oracle表,查询非常简单: ="update table set phone_number = "&B2&" where entityid = "&D2&";" 我的问题是关于脚本本身,从这样大小的文件编写脚本的标准做法是什么?我是否只需要编写一个包含6000条更新语句的.sql文件?还是通过将文件转换为.csv或其他方法导入oracle更好 您可以在SQL Developer中轻松完成 展

我得到了一个大约6000行的excel文件,我需要编写一个脚本来更新oracle表,查询非常简单:

="update table set phone_number = "&B2&" where entityid = "&D2&";"

我的问题是关于脚本本身,从这样大小的文件编写脚本的标准做法是什么?我是否只需要编写一个包含6000条更新语句的.sql文件?还是通过将文件转换为.csv或其他方法导入oracle更好

您可以在SQL Developer中轻松完成

  • 展开左侧窗格上的连接
  • 展开
  • 右键单击表格,然后选择导入数据
  • 它将打开数据导入向导
  • 选择您的文件并在导入开始前再执行几步
  • 如果您有一个CSV文件,其他选项包括:

    • SQL加载程序(客户端)
    • 外部表(服务器端)

    但是,如果您不熟悉其他选项,那么可以使用SQL Developer导入选项,使用easy和基于GUI的

    您可以在SQL Developer中轻松地进行导入

  • 展开左侧窗格上的连接
  • 展开
  • 右键单击表格,然后选择导入数据
  • 它将打开数据导入向导
  • 选择您的文件并在导入开始前再执行几步
  • 如果您有一个CSV文件,其他选项包括:

    • SQL加载程序(客户端)
    • 外部表(服务器端)

    但是如果您不熟悉其他选项,请使用SQL Developer导入选项,简单且基于GUI的

    ,我无法直接回答这个问题,因为语法会有点不同,但必须在SQL server中执行相同的操作,基本思想是将excel文件导入到新表中,然后设置一个将其连接到现有表(内部连接)的查询,然后只更新匹配的记录。我想说的是,您需要编写一个脚本,该脚本将抛出xls中的所有行并更新表(它看起来就像一个在foreach循环中带有参数的更新语句)。如果您有数十万条记录,这可能是性能问题,但对于6000条记录,我认为简单的解决方案应该是okok@are-您是说从OpenRowset执行select*吗?这是一种通用方法。。。我不知道你要在哪里实现逻辑。。。它可以通过VBA位于xls文档内部,也可以是可以访问xls和oracle的外部应用程序,也可以是可以访问文档的oracle存储过程。。。在每种情况下,简单的逻辑如我所述。。。其优点是:简单、易于实现、易于获得第一个工作原型,该方法的问题-在大量数据上可能会出现性能问题,因为您需要调用update语句6000次…我不能直接回答这个问题,因为语法会有点不同,但必须在SQL server中执行相同的操作,基本思想是将excel文件导入到新表中,然后设置一个将其连接到现有表(内部连接)的查询,然后只更新匹配的记录。我想说的是,您需要编写一个脚本,该脚本将抛出xls中的所有行并更新表(它看起来就像一个在foreach循环中带有参数的更新语句)。如果您有数十万条记录,这可能是性能问题,但对于6000条记录,我认为简单的解决方案应该是okok@are-您是说从OpenRowset执行select*吗?这是一种通用方法。。。我不知道你要在哪里实现逻辑。。。它可以通过VBA位于xls文档内部,也可以是可以访问xls和oracle的外部应用程序,也可以是可以访问文档的oracle存储过程。。。在每种情况下,简单的逻辑如我所述。。。这样做的好处——简单、易于实现、易于获得第一个工作原型,这种方法的问题——在大量数据上可能会出现性能问题,因为您需要调用更新语句6000次……我正在将其转移到生产环境中,并且无法访问gui,有没有办法从服务器端做到这一点?您可以创建pl/sql过程来解析xls并进行更新。请参见此处的示例:@rtd353在服务器上,您可以创建一个外部表,将excel转换为csv,然后使用文件位置将数据插入到外部表中。一旦外部表中有了数据,您就可以像普通表一样对其发出直接SQL,将数据移动到生产表中。我正在将其移动到生产表中,并且没有访问gui的权限,有没有办法从服务器端执行此操作?您可以创建pl/SQL过程来解析xls并进行更新。请参见此处的示例:@rtd353在服务器上,您可以创建一个外部表,将excel转换为csv,然后使用文件位置将数据插入到外部表中。一旦外部表中有了数据,就可以像普通表一样对其发出直接SQL,将数据移动到生产表中。