Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql oracle外部表选项_Sql_Oracle_Plsql_Oracle11g - Fatal编程技术网

Sql oracle外部表选项

Sql oracle外部表选项,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,我有一个ORACLE外部表,它从路径加载文件数据。 但是路径中的文件名每5分钟修改一次,只有文件的时间戳会定期更改。 示例文件名:“数据31052017032525.txt” --高亮显示的路径将定期更改 如何在ORACLE外部表脚本中处理此情况,而不是每隔5分钟修改oet表脚本中的文件名。您可以通过运行 dbms_utility.EXEC_DDL_STATEMENT('alter table TABLENAME location (''DATA_31052017032525.txt'')');

我有一个ORACLE外部表,它从路径加载文件数据。 但是路径中的文件名每5分钟修改一次,只有文件的时间戳会定期更改。 示例文件名:“数据31052017032525.txt”

--高亮显示的路径将定期更改


如何在ORACLE外部表脚本中处理此情况,而不是每隔5分钟修改oet表脚本中的文件名。

您可以通过运行

dbms_utility.EXEC_DDL_STATEMENT('alter table TABLENAME location (''DATA_31052017032525.txt'')');

如果秒数也发生变化,您必须首先更改。

您可以通过运行

dbms_utility.EXEC_DDL_STATEMENT('alter table TABLENAME location (''DATA_31052017032525.txt'')');

万一秒数也变了,你就得先变。

我认为这是不可能的。您可以做的是在文件被修改后将其复制为具有静态名称的文件,然后将外部表基于静态命名文件。例如,
DATA_31052017032525.txt
复制到
DATA_main.txt
,然后5分钟后,
DATA_31052017033025.txt
复制到
DATA_main.txt
,等等。假设您需要保留文件中的时间戳,否则,在修改后,您只需将其重新命名为静态名称。我认为这是不可能的。您可以做的是在文件被修改后将其复制为具有静态名称的文件,然后将外部表基于静态命名文件。例如,
DATA_31052017032525.txt
复制到
DATA_main.txt
,然后5分钟后,
DATA_31052017033025.txt
复制到
DATA_main.txt
,等等。这是假设您需要在文件中保留时间戳,否则您只需在修改后将其重命名回静态名称即可。