问题标签 [utl-file]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - PL/SQL UTL_FILE 读取匿名块的问题
问题是我什至无法启动这个匿名代码块。首先,我只是试图打开我的数据文件并读取它,然后从那里构建。但我什至无法打开文件。
SQL Developer 错误报告开始于
然后重复代码块并添加:
performance - 对于大于 32kb 的文件,BLOB 导出速度很慢
我需要从我们的 Oracle 11g (11.2.0.3) 系统导出 BLOB。该过程非常适合小于 32,767 字节的 BLOB(JPG 照片)。我可以使用 dbms_log.read 和 utl_file.put_raw 在 5 秒内将 ~4000 张照片导出到数据库服务器上的本地目录。如果文件超过了读取缓冲区的 32,767 字节限制,这就是性能问题的开始。我看过关于确切性能问题的类似帖子,但提供的解决方案已经过研究但没有成功。根据监控工具,CPU、I/O 和内存在导出期间没有受到压力。我试图了解为什么与 32,767 字节以下的 BLOB 相比,必须以 32,767 字节增量拼凑在一起的较大 BLOB(所有这些 BLOB 的大小都在 100K 以下)具有如此巨大的导出速度。
有没有人遇到过文件大于 32,767 字节的 BLOB 导出缓慢?
提前感谢您对 BLOB 导出的任何见解。
oracle - 如何使用 Oracle utl_file 输出扩展的 ascii 字符
我正在使用写文件
但我把它改成了
当我发现扩展的 ASCII(代码 127 以上的字符)没有正确写出时。然而,第二个 unicode 版本也不能正确写入扩展字符。而不是 Rosëttenville,我得到的是 Rosëttenville。有人知道怎么修这个东西吗?
oracle - ORACLE如何在新行中打印文本
基本上它是我试图通过 Oracle PL/SQL 过程执行的文本打印字母。
我的代码如下: -
我可以通过将 lv_final_str 与 CHR(13) 连接并在循环中使用 *utl_file.put_line(Out_file,lv_final_str );* 来打印下一行中的值
我想通过在循环内的变量中收集文本来做同样的事情。并使用下面的代码在循环外写入变量的值。
如何做到这一点,请帮助。我也使用了 chr(10),它没有在新行中打印。如果您观察到用于打印制表符空间的 chr(9) 运行良好。只有下一行 chr(10) 或 chr(13) 不起作用。为什么...?
任何帮助..我从过去 3 天开始尝试...请帮助。
sql - 了解 Utl_file
所以我正在改变这个 parse_file 'clean_files_up procedure' 的过程。我已经对更改进行了编码,但在测试后我意识到我实际上很难理解发生了什么。我从未使用过解析文件或 utl_file,所以我并不完全理解这个概念。
因此,总而言之,我们需要它从名为 NEWFILE_DIRECTORY 的目录中查找具有当前 sysdate 的名为 Files20130807.xxx 的文件。如果没有文件意味着它找不到与当前 sysdate 匹配的文件,则需要运行位于名为 ORIGINALFILE_DIRECTORY 的不同目录中的原始文件,然后结束该过程。如果存在与当前 sysdate 匹配的文件,则需要继续执行该过程。当它实际打开文件时,它将打开与 NEWFILE_DIRECTORY 中的当前 sysdate 匹配的文件,然后解析该文件,否则如果 NEWFILE_DIRECTORY 中的当前文件已打开,则需要打开位于 ORIGNIALFILE_DIRECTORY 中的原始文件和然后将改为解析该文件。
问题:
- 所以我需要创建一个名为 NEWFILE_DIRECTORY 的新目录,该目录位于某个文件路径 /xxx/xxx/xxx 中,其中包含以下文件列表;Files20130804.xxx, Files20130805.xxx, Files20130806.xxx, Files20130807 位于其中。我不知道在此过程中的哪个位置创建新目录,或者即使我可以在过程中创建它
在 '/xxx/xxx/xxx' 中创建或替换目录 newfile_directory
2.. 我需要读入这些文件以确保它与 sysdate 匹配,否则它需要运行原始文件,然后转到程序的末尾。这部分是 BEGIN 之后的 IF 语句。我只是对它如何知道在 NEWFILE_DIRECTORY 中查找匹配的文件名 Files20130807.xxx 以查看它是否匹配感到困惑。
3 .. 这是一个与#2 类似的问题,但是(在第一个 End IF 之后)它如何知道 NEWFILE_DIRECOTRY 和 ORIGINALFILE_DIRECTORY 的文件路径位于何处而不给出或定义路径?
4.. 最后,在测试代码时,我注意到在它读入 v_inFile := utl_file.fopen ('NEWFILE_DIRECTORY', 'v_fileName', 'r'); (就在第一个 End IF 之后;)它下降到异常而不继续通过 if 和循环。
我真的很感激有人可以回答这些问题至少有助于了解发生了什么。此外,如果我需要明确问题(1-4),我可以这样做。
sql - 来自 sql developer 的 Oracle UTL_FILE 问题
使用我的 Oracle SQL 开发人员作为 Oracle 11g 数据库的客户端时,我遇到了一个奇怪的问题。
UTL_FILE
我有一个 plsql 过程,它使用包编写一些报告文件。如果我从 SQL 开发人员运行它会失败,并出现以下错误:
如果我直接在 sql plus 上运行相同的过程,它可以正常工作并生成报告文件。我已经从 sql developer 创建了输出目录,对我来说它看起来不错,因为它是作为 sys 用户创建的。
database - utl_file.fopen 没有“创建目录 ... 作为 ...”
大家好你们好。我是 PL/SQL 和 Oracle 数据库的新手。我需要读/写服务器上存在的文件,所以我正在使用utl_file.fopen('/home/tmp/','text.txt','R')
,但 Oracle 显示错误“目录路径无效”。
主要问题是我只有用户权限,所以我不能使用类似create directory user_dir as '/home/temp/'
或查看 utl_file_dir 之类的命令,只show parameter utl_file_dir;
使用此代码查看 utl_file_dir:
输出为“值 = 0”。
我用谷歌搜索了很多,但没有找到任何解决这个问题的方法,所以我在这里寻求帮助。
要读取文件,我使用了以下代码:
plsql - 如何在不使用其操作系统的情况下从 DBserver 卸载到远程服务器
我在 oracle 数据库中遇到问题。我有一个托管服务的数据库,因此我无法看到 oracle 数据库的驱动器或文件夹。因此,使用 utl_file 的程序已经停止工作,因为目录路径现在无效。
我将如何在 OS 文件系统上读写?我需要从加入 2-3 个 oracle 表中提取报告,并将数据提取到平面文件中。其中作为外部表,并且 utl_file 不能工作,因为由于托管层而无法定义目录路径,所以 oracle OS 层是不可见的。
此外,也不允许挂载数据库,也不提供创建目录的权限。
你能请,请帮助我。谢谢。
oracle - PL/SQL UTF_FILE.PUT_LINE 不添加新行
我创建了一个将文本写入文件的过程,但由于某种原因,我无法通过代码创建新行,最终结果是该过程将所有内容写入同一行,直到它换行由于尺寸。这是代码的样子:
运行此过程 1 次后,文件如下所示:
30-DEC-13 03.43.03.341466 PM 1 LPSQL TABLET_PARTY.GETSP TABLET_PARTY.GET ERR SQL 错误:100 找不到 ID 的派对详细信息:200144095test
如您所见,一切都在同一条线上,我尝试了 PUT 函数的所有变体,但没有任何帮助。有任何想法吗?提前非常感谢!
oracle - 使用 UTL_FILE 通过 Oracle 创建目录的 Shell 脚本
当我运行此脚本时,我得到以下输出,说明目录已成功创建。但是,当我验证我的主目录时,不会创建该目录,即使消息确认相同。
我已经完成了UTL_FILE.FOPEN() 过程中给出的解决方案,不接受目录路径?,但我仍然不确定如何纠正这个问题?