AE 指的是 Application Engine,是 PeopleSoft 系统中一种非常重要的工具,可用于批量处理数据、生成报表等等操作。而访问数据库,则是 AE 中最为基础也是最重要的操作之一。Oracle 数据库也是 PeopleSoft 常用的数据库系统之一,下面我们来探讨一下如何使用 AE 访问 Oracle 数据库。
首先,我们需要在 AE 程序中调用 Oracle 的 API 接口,导入相应的包。比如说,我们想通过 AE 读取一个表格中的数据,可以通过以下代码实现:
Local function &fetchData(&tableName As String) Returns boolean
Local SQL &selectStmt;
Local SqlFetch &fetchResult;
Local boolean &hasRows;
&selectStmt = CreateSQL("SELECT * FROM " | &tableName);
&fetchResult = &selectStmt.GetRowset(ScrollMode:ForwardOnly);
&hasRows = &fetchResult.MoveNext();
While &hasRows
/* process data */
&hasRows = &fetchResult.MoveNext();
End-While;
&selectStmt.Close();
return True;
End-Function;
在上述代码中,CreateSQL 函数会根据给定的 SQL 语句创建一个 SQL 对象,GetRowset 函数再利用该对象得到一个 Rowset 对象,之后我们就可以通过 MoveNext 方法逐条处理取出来的数据。需要注意的是,由于 Rowset 只是一种轻量级的数据集对象,故而对于大量数据的处理并不是非常高效。
除了读取数据之外,我们还可以通过 AE 向 Oracle 数据库中插入、更新或删除数据。比如说,下面的代码就是在一个插入数据的 AE 程序中使用的:
Local SQL &insertStmt;
&insertStmt = CreateSQL("INSERT INTO PS_MY_TABLE (FIELD1, FIELD2) VALUES (:1, :2)");
&insertStmt.BindVariable(1, &field1);
&insertStmt.BindVariable(2, &field2);
&insertStmt.ExecuteInsert();
&insertStmt.Close();
在这段代码中,CreateSQL 函数创建了一个 INSERT 语句的 SQL 对象,BindVariable 函数则为 SQL 对象的参数绑定了具体的值。最后,我们使用 ExecuteInsert 函数将该 SQL 语句推到了数据库中,并通过 Close 函数关闭了相关的 SQL 对象。
总的来说,AE 对 Oracle 数据库的访问并不算非常复杂,只需要一些基础的 SQL 知识和 API 接口的使用技巧即可。当然,对于更加复杂的操作,如事务控制、分布式数据库访问等等,AE 还需要进一步精进才能胜任。