### ORACLE系统报表输出流程详解
#### 一、制作ORACLE宏文件
1. **准备工作**:
- 首先需要准备一个名为`BOOK1_国内.xls`或`BOOK1_国际.xls`的Excel文档,可以从“财会家园”网站下载或者直接拷贝现有文件并重命名为`BOOK1.xls`。
- 在某些情况下,下载下来的文件可能需要解压缩才能使用。
2. **启用宏功能**:
- 打开`BOOK1.xls`文档,在首次打开时会弹出“安全警告”窗口,这时需要选择“启用宏”按钮来确保宏功能可以正常使用。
- 接下来选择“工具”菜单中的“自定义……”选项,找到类别是“宏”的自定义按钮,并将其拖动到菜单栏中。
- 完成以上步骤后,关闭“自定义”窗口。
3. **宏的使用**:
- 单击之前设置的笑脸按钮,会跳出一个新的窗口。
- 在弹出的窗口中选择宏名为“meus”的宏,然后点击“确定”按钮。
- 退出Excel。
#### 二、报表集方式提交
1. **报表集的概念**:
- ORACLE GL模块提供了一种按报表集提交报表的方式。报表集指的是提前定义好的报表组合,可以一次性提交整个集合内的所有报表。
2. **提交流程**:
- 操作路径为:报告/请求/财务/单个报表集。
- 选择需要运行的报表集以及相应的会计周期。
- 点击“应用”按钮,将报表集中所有的报表设置为所选周期。
- 选择“提交”按钮,系统将会创建一系列后台进程来处理这些报表。
- 进程执行完毕后,即可生成预定义的报表。
#### 三、报表格式的转换
1. **登录ADI系统**:
- 登录到ADI系统,使用与ORACLE系统相同的用户名和密码。
- 进入ADI系统后,需要进行查询、添加请求标识等操作。
2. **查询和添加请求**:
- 选择任务栏中的“请求中心”窗口。
- 在弹出的“选择请求监视器”窗口中,选择“完成”选项,然后点击查询按钮。
- 查询结果中选择需要转换格式的报表,点击“添加”按钮。
- 关闭“选择请求监视器”窗口后,回到“请求中心”窗口,选择“已完成”选项卡。
3. **报表的发布**:
- 单击“发布”按钮,等待一段时间后会出现新的窗口提示报表已发布。
- 注意:当需要发布多个报表时,每次只能发布一个。
- 发布时需要选择输出类型为“电子表格”,并且选择“新工作簿”。
4. **启用宏功能**:
- 如果没有看到“报表格式转换”菜单,可以再次单击笑脸按钮并选择启用宏按钮。
- “报表格式转换”菜单会自动跳出,从中可以选择需要转换的表格,例如“资产负债表”。
5. **转换前后对比**:
- 宏程序运行完成后,会形成最终的报表格式。可以通过比较转换前后的格式来验证转换是否成功。
#### 四、报表的保存
1. **保存报表**:
- 当所有报表都发布完成后,将当前的`BOOK1`文档保存。
- 将保存后的文档重命名为如“2003年10月报表”。
- 同时将备份的`BOOK1_国内.xls`或`BOOK1_国际.xls`拷贝到相同位置,并重命名为`BOOK1`,以便下次使用。
#### 五、附加数据库管理技巧
1. **数据库主键生成**:
- 可以使用以下SQL语句生成数据库主键:`SELECT SUBSTR(TO_CHAR(DBMS_RANDOM.VALUE),2,22)||GETUUID.NEXTVAL FROM DUAL;`
2. **数据库空间查询**:
- 查询表空间在哪些空间下的SQL语句如下:
```sql
SELECT DF.TABLESPACE_NAME "表空间名",
TOTALSPACE "总空间M",
FREESPACE "剩余空间M",
ROUND((1-FREESPACE/TOTALSPACE)*100,2) "使用率%"
FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/1024/1024) TOTALSPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) DF,
(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/1024/1024) FREESPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) FS
WHERE DF.TABLESPACE_NAME = FS.TABLESPACE_NAME;
```
- 查询用户下所用空间的SQL语句如下:
```sql
SELECT OWNER, TABLESPACE_NAME, ROUND(SUM(BYTES)/1024/1024,2) "USED(M)"
FROM DBA_SEGMENTS
GROUP BY OWNER, TABLESPACE_NAME
ORDER BY SUM(BYTES) DESC;
```
3. **删除重复数据**:
- 若要删除表中的重复数据,可以使用以下SQL查询语句来查找重复行:
```sql
SELECT A.ROWID, A.*
FROM 表名 A
WHERE ...
```
通过上述步骤和技巧,可以有效地管理和优化Oracle数据库中的报表输出流程及相关数据库管理操作。