Oracle 当顺序(序列号)和列长度已知时,如何导出列的起始和结束位置

Oracle 当顺序(序列号)和列长度已知时,如何导出列的起始和结束位置,oracle,window-functions,Oracle,Window Functions,这是过去两周我一直在努力解决的难题。在Oracle中,有一个名为dba_tab_columns的表,其中包含一个列CHAR_COL_DECL_LENGTH(表示列长度)以及列ID(表示创建的列的序列号),应该可以导出每列的字符开始和结束位置。我尝试使用分区覆盖的方法,但无法得到正确的结果 “为每列导出字符的开始和结束位置”是什么意思?你是说试图找出某个特定块中某个特定列的起始位置吗?假设我们讨论的是varchar2列,这将取决于数据,而不是列的最大大小(并且您希望以字节而不是字符为单位)。如果你

这是过去两周我一直在努力解决的难题。在Oracle中,有一个名为dba_tab_columns的表,其中包含一个列CHAR_COL_DECL_LENGTH(表示列长度)以及列ID(表示创建的列的序列号),应该可以导出每列的字符开始和结束位置。我尝试使用分区覆盖的方法,但无法得到正确的结果

“为每列导出字符的开始和结束位置”是什么意思?你是说试图找出某个特定块中某个特定列的起始位置吗?假设我们讨论的是
varchar2
列,这将取决于数据,而不是列的最大大小(并且您希望以字节而不是字符为单位)。如果你在谈论其他事情,举个例子会很有帮助。你是在谈论像试图找出某个特定块中某个特定列的起始位置这样的事情吗没错:)我编写了一个apex应用程序,从Oracle数据库中提取数据并创建一个csv。csv被导入到另一个应用程序中,但由于传统原因,如果我指定字段的开始字符位置和结束字符位置,则该应用程序只能读取数据…因此,请想象一个常规的csv,而不是指定字段分隔符,您必须计算每个字段的开始和结束位置…因此需要计算位置的原因。您正在谈论生成一个固定宽度的输出文件,并为使用边界的应用程序生成报告?这与询问块中某个特定列的起始位置有很大不同。如果试图生成固定宽度的文件,文件的字符集是否与数据库的字符集匹配?消费应用程序是否需要以字符或字节为单位指定位置(哦,当你输入中文和日文数据时,会出现一些极端情况)。但是,想要自动生成这些位置而不仅仅是说“这是文件中的30列,这是我填充/截断每个字符列的长度”