LOB 文件引用变量

文件引用变量与主变量相似,只是它们用于在集成文件系统文件之间传输数据 (而不是在内存缓冲区之间传输数据)。

文件引用变量表示 (而不是包含) 文件,正如 LOB 定位器表示 (而不是包含) LOB 值一样。 数据库查询,更新和插入可以使用文件引用变量来存储或检索单个 LOB 值。

对于非常大的对象,文件是自然容器。 在将大多数 LOB 移至服务器上的数据库之前,这些 LOB 可能是作为存储在客户机上的文件中的数据开始的。 使用文件引用变量有助于移动 LOB 数据。 程序使用文件引用变量将 LOB 数据从集成文件系统文件直接传输到数据库引擎。 要执行 LOB 数据的移动,应用程序不需要使用主变量编写实用程序例程来读写文件。

注: 文件引用变量引用的文件必须可从运行程序的系统访问 (但不一定驻留在该系统上)。 对于存储过程,这是服务器。

文件引用变量的数据类型为 BLOB , CLOB 或 DBCLOB。 它用作数据源 (输入) 或数据目标 (输出)。 文件引用变量可能具有相对文件名或文件的完整路径名 (建议使用后者)。 在应用程序中指定文件名长度。 文件引用变量的数据长度部分在输入期间未使用。 在输出期间,数据长度由应用程序请求者代码设置为写入文件的新数据的长度。

使用文件引用变量时,在输入和输出上都有不同的选项。 必须通过在文件引用变量结构中设置 file_options 字段来选择文件的操作。 下面显示了对涵盖输入和输出值的字段进行赋值的选项。

使用输入文件引用变量时的值 (针对 C 显示) 和选项如下所示:

  • SQL_FILE_READ (常规文件)-此选项的值为 2。 这是一个可以打开,读取和关闭的文件。 Db2® 在打开文件时确定文件中数据的长度(以字节为单位)。 然后, Db2 通过文件引用变量结构的 data_length 字段返回长度。 COBOL 的值是 SQL-FILE-READ。

使用输出文件引用变量时的值和选项如下所示:

  • SQL_FILE_CREATE (新文件)-此选项的值为 8。 此选项将创建新文件。 如果该文件已存在,那么将返回错误消息。 COBOL 的值是 SQL-FILE-CREATE。
  • SQL_FILE_OVERWRITE (覆盖文件)-此选项的值为 16。 如果任何文件都不存在,那么此选项将创建新文件。 如果该文件已存在,那么新数据将覆盖该文件中的数据。 COBOL 的值是 SQL-FILE-OVERWRITE。
  • SQL_FILE_APPEND (附加文件)-此选项的值为 32。 此选项将输出附加到文件 (如果存在)。 否则,将创建新文件。 COBOL 的值是 SQL-FILE-APPEND。
注: 如果在 OPEN 语句中使用了 LOB 文件引用变量,请不要删除与 LOB 文件引用变量关联的文件,直到游标关闭为止。