Oracle Warehouse Builder全面操作指南

5星 · 超过95%的资源 需积分: 10 59 下载量 183 浏览量 更新于2024-11-09 1 收藏 9.52MB DOC 举报
"Oracle WareHouse Builder 操作指南(中文版)" Oracle WareHouse Builder (OWB) 是Oracle公司提供的一款强大的数据仓库构建工具,它允许用户设计、构建和管理数据仓库解决方案。本操作指南涵盖了从安装OWB到实际操作的各个步骤,包括数据源定义、目标库定义、映射设计以及执行部署等关键环节。 1. **安装** - **Oracle9i数据库**:首先需要安装Oracle9i数据库,这是OWB的基础,用于存储数据仓库的相关信息。 - **Oracle Workflow**:在安装完数据库后,若要使用OWB的进程流功能,需要安装Oracle Workflow,这能帮助管理数据仓库的生命周期和工作流任务。 - **OWB**:OWB不在数据库安装包中,而是包含在Developer Suite中,可以从Oracle官方网站下载单独的OWB包进行安装。安装时需注意设置独立的Oracle_HOME,避免与数据库的冲突。 2. **初始化OWB** - **Overview**:OWB作为一个开发工具,主要生成PL/SQL代码来实现数据仓库的构建。 - **Repository安装**:包括安装REPOSITORY和RUNTIME REPOSITORY,前者用于存储元数据,后者用于运行时信息。 3. **登录**:完成安装后,用户可以通过OWB的界面进行登录,开始使用其功能。 4. **定义数据源** - **Oracle数据源**:OWB支持连接到Oracle数据库,用户可以配置连接参数来创建Oracle数据源。 - **非Oracle数据源**:通过ODBC和HSODBC配置,OWB也能连接到非Oracle系统,如其他关系型数据库或文件系统。 - **文件数据源**:对于文件数据,OWB提供了配置方法,包括CSV或其他格式的平面文件。 5. **定义目标库**:在设计数据仓库时,用户需要定义目标数据库结构,用于存储转换后的数据。 6. **定义映射** - **设计数据仓库**:OWB允许用户设计复杂的ETL(提取、转换、加载)流程,包括数据清洗、转换规则等。 - **定义映射**:映射是OWB的核心部分,用户在这里定义数据从源到目标的转换规则。 7. **部署执行**:完成设计后,OWB支持将映射部署到目标数据库,并执行ETL过程。 8. **进程流**:OWB的进程流功能允许用户创建和管理数据处理的流程,包括调度和监控。 9. **特例分析** - **处理平面文件**: OWB提供了两种处理平面文件的方法,一是使用sql*loader进行批量加载,二是创建外部表直接访问文件。 - **处理远程文件**:对于远程文件,OWB可以借助网络连接或其他工具进行处理。 - **处理名称不定的文件**:OWB支持动态文件名处理,适应文件命名变化的情况。 这个指南详细阐述了OWB的每个操作步骤,对于想要学习和使用OWB构建数据仓库的用户来说,是一份非常实用的参考资料。通过遵循这些步骤,用户可以逐步掌握OWB的使用,从而高效地构建和管理自己的数据仓库项目。
2009-08-21 上传
const int BLOCK_LINE = 20;//当前地图的行数 const int BLOCK_ROW = 10;//当前地图的列数 class CBlock { public: CBlock(void); ~CBlock(void); private: // 当前方块形状 int m_BlockShape; //下一个方块形状 int m_nextBlockShape; //当前方块状态 int m_BlockState; //等级 int m_BlockLevel; //当前可消行数 int m_BlockCurDelLine; //游戏是否在执行 bool m_blockRunning; //当前方块位置 POINT m_BlockPos[4]; //下个方块位置 POINT m_nextBlockPos[4]; //当前的屏幕状态 //BLOCK_LINE是行数,BLOCK_ROW是列数 int m_Blockmap[BLOCK_LINE][BLOCK_ROW]; public: // 初始化游戏 void BlockInit( void ); private: // 记录方块图形 CBitmap m_bmpBlock[7]; public: //创建一个新的方块出来,这里只给方块形状赋值 void CreateNewBlock(void); private: //这里给方块位置赋值, //shape是形状, pt[]是用来接收方块坐标的(方块形状的排列坐标)数组 //xPos是偏移量,就是方块显示位置和方块显示的框的最左边的差 void MakeNewBlock(int shape, POINT pt[], int xPos); public: //将方块画在对应的DC上 void DrawBlock(CDC* pDC); //方块的下落过程,主要部分 void BlockDropDown(CDC* pDC); private: // 隐藏方块 void HideBlock(CDC* pDC); // 背景图片变量 CBitmap m_bmpBKGND; public: // 画下个方块的框框 void DrawNextBlock( CDC* pDC ); //方块左移 void BlockLeft(CDC* pDC); //方块右移 void BlockRight(CDC* pDC); //方块下移 void BlockFastDown(CDC* pDC); //方块变形 void ChangeState(CDC* pDC); // 消除一行 //pDC是传入的DC //LineNum是消除的行从第几行开始(我这里是最上面为0,最下面为19) //start是 游戏是否是要把消除行以上的都置0,我是用在OnDraw()里,用来重画屏幕的, void DeleteLine(CDC* pDC, int LineNum, bool start); // 游戏是否结束,true=结束了 bool BlockGameOver(void); // 计分板 //del是决定是否是已消一行的 void BlockScore(int del, CDC* pDC); //返回是否升级了,true=升级了 bool BlockLevelUp(void); //返回下落速度 int BlockSpeed(void); };