ITPub博客

首页 > 数据库 > 国内数据库 > 【YashanDB 知识库】共享利用 Python 脚本解决 Oracle 的 SQL 脚本 @@用法

【YashanDB 知识库】共享利用 Python 脚本解决 Oracle 的 SQL 脚本 @@用法

原创 国内数据库 作者:崖山数据库系统YashanDB 时间:2025-02-11 15:23:26 0 删除 编辑

本文内容来自 YashanDB 官网,原文内容请见  共享利用 Python 脚本解决 Oracle 的 SQL 脚本 @@用法 - YashanDB

 

import os

def get_all_files(root_path):

"""

递归获取指定路径下所有文件的绝对路径

:param root_path: 需要递归的根目录路径

:return: 文件绝对路径列表

"""

初始化文件列表

all_files = []

获取根目录下的所有文件和目录

for dir_path, dir_names, file_names in os.walk(root_path):

遍历文件

for file_name in file_names:

获取文件的绝对路径并添加到列表中

file_path = os.path.join(dir_path, file_name)

all_files.append(file_path)

return all_files

if __name__ == '__main__':

获取脚本所在路径

current_path = os.path.dirname(os.path.abspath(__file__))

print ("当前目录是:", current_path)

filenames = get_all_files(current_path)

for filename in filenames:

if filename.endswith(".sql"):

filename_dirname = os.path.dirname(filename)

filename_basename = os.path.basename(filename)

filename_orig = filename + ".orig"

print ("\n 当前处理:"+filename)

读取所有行

with open(filename, 'r') as file:

lines = file.readlines()

need_rename_file = False

newlines = []

for line in lines:

替换以 @@为 @+ 绝对路径

if line.startswith("@@"):

newlines.append(line.replace("@@","@" + filename_dirname + "\\", 1))

need_rename_file = True

else:

newlines.append(line)

for newline in newlines:

print(newline, end="")

if need_rename_file:

重命名文件

os.rename(filename, filename_orig)

写回文件

with open(filename, 'w') as file:

file.writelines(newlines)

print ("\n 处理完毕:" + filename)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3071694/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639968