create or replace procedure get_authors_cur(
cv_results in out sys_refcursor)
is
begin
open cv_results for
select id, first_name, last_name
from authors;
end;
这个oracle存储过程返回一个cursor类型变量。在下面的程序中,我们将从java中引用这个cursor(在java中是ResultSet)
package dev.cxz.oracle;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import oracle.jdbc.OracleCallableStatement;
public class CursorResultSet {
/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException,
ClassNotFoundException {
new CursorResultSet().text();
}
private void text() throws SQLException, ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "plsql", "oracle");
String callProc = "begin get_authors_cur(?); end;";
CallableStatement call = conn.prepareCall(callProc);
call.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
call.execute();
ResultSet cursor = ((OracleCallableStatement) call).getCursor(1);
while (cursor.next()) {
System.out.println(cursor.getString("first_name") + ", "
+ cursor.getString("last_name"));
}
}
}
运行结果:
引用
Marlene, Theriault
Rachel, Carmichael
James, Viscusi
Michael, Abbey
Michael, Corey
Gaja, Vaidyanatha
Kirtikumar, Deshpande
John, Kostelac
Ian, Abramson
Kenny, Smith
Stephan, Haisley
Lars, Bo
Dirk, Schepanek
Christopher, Allen
David, James
Graham, Seibert
Simon, Russell
Bastin, Gerald
Nigel, King
Dan, Natchek
Steve, Vandivier
Kelly, Cox
Venkat, Devraj
Peter, Koletzke
Paul, Dorsey
Scott, Urman
Kevin, Loney
Sumit, Sarin
George, Koch
Michael, Armstrong-Smith
Darlene, Armstrong-Smith
Rama, Velpuri
Anand, Adkoli
Aaron, Newman
Donald, Burleson
Brad, Brown
Jason, Price
Robert, Freeman
Matthew, Hart
Dave, Faulkner
Mark, Scardina
Ben, Chang
George, Hardman
Jinyu, Wang
Scott, Boudreaux
Wim, Coekaerts
Ron, Hardman
Mike, McLaughlin
David, Knox
Scott, Jesse
Tom, Doebler
Rich, Niemic
Joe, Trezzo
分享到:
相关推荐
首先,我们需要创建一个Oracle存储过程,该过程定义了一个名为CURSOR_RESULT的REF CURSOR类型。在提供的示例中,我们有一个名为TEST的包,包含一个名为GET_CURSOR_RESULT的存储过程。该过程接受四个参数:P_...
获取到`Cursor`对象`result`后,我们可以通过`getCount()`方法获取查询结果的行数。如果行数为0或者无法移动到第一条数据,说明数据库中没有数据,此时可以显示相应的提示信息。 `moveToFirst()`方法将`Cursor`移动...
ScanResult<String> result = jedis.scan(cursor, params); cursor = result.getStringCursor(); if (!"0".equals(cursor)) { List<String> keys = result.getResult(); // 处理获取到的keys for (String key ...
在`onPostExecute(Cursor result)`方法中,我们可以设置新的Cursor到Adapter,但不要忘记在适当的地方关闭旧的Cursor。以下是一个示例: ```java @Override protected void onPostExecute(Cursor result) { super....
result = cursor.getString(cursor.getColumnIndex("chinese")); } new AlertDialog.Builder(this).setTitle("查询结果").setMessage(result) .setPositiveButton("关闭", null).show(); }
在使用Python的pymysql库操作数据库时,可能会遇到`cursor.fetchall()`无法获取到数据的问题。本文将深入探讨这个问题的原因及解决方案。 首先,`cursor.fetchall()`是用于从数据库查询结果中获取所有行的数据。在...
jaydebeapi 目前只支持到JPype1 0.6.3,安装0.7.*版本会导致无法运行。 1. pip install JPype1-0.6.3-cp37-cp37m-win_amd64.whl 2. 再将db2jcc4-10.5.9.jar...result = cursor.fetchall() for r in result: print(r)
在SQL Server中,游标(Cursor)是一种数据库对象,它允许我们一次处理一行或多行数据,而不是一次性加载整个查询结果集。游标对于迭代执行操作,例如逐行更新或逐行处理复杂逻辑,非常有用。然而,如果不正确地管理...
question_result = cursor.fetchone() cursor.execute("SHOW STATUS LIKE 'Com_commit';") commit_result = cursor.fetchone() # 计算QPS和TPS uptime = cursor.execute("SHOW GLOBAL VARIABLES LIKE 'Uptime'...
result = cursor.fetchone() file_name, position = result[0], result[1] ``` 然后,你可以在从节点的配置文件中使用`file_name`和`position`来启动复制。当然,这通常是在服务器级别配置的,但通过Python脚本...
'result': L } # 序列化字典为JSON并返回给前端 return HttpResponse(json.dumps(dic, ensure_ascii=False)) ``` 上述代码中,`order_by('-id')`是用于按ID降序排列查询结果。这样可以确保返回的数据按照最新的ID...
<procedure id="pro_cursor" parameterMap="pro_cursor_map"> {call user_account_proc1(?)} ``` 这里的`user_account_proc1`是一个返回游标的存储过程,它通过输出参数`my_cursor`返回结果集。 #### 总结 通过...
LoaderCursorUtil 异步查询数据库的工具类 使用方法如下: protected void onCreate(Bundle savedInstanceState) { ... public void resultListener(Cursor data) { data.moveToFirst(); } }); }
复制代码 代码如下:import osimport sysimport MySQLdbdef getStatus(conn): query = ” SHOW SLAVE STATUS “ # print query cursor = conn.cursor() cursor.execute(query) result = cursor.fetchall() ...
SQL Cursor,或者称为游标,是SQL中一种用于遍历查询结果集的机制,它允许程序逐行处理结果,而不是一次性获取所有数据。游标在处理分步操作、逐行处理数据或者在循环中更新记录时非常有用。下面将详细介绍SQL游标的...
temp_result := temp_result || cursor_result.loc || ', '; END LOOP; x := temp_result; END test_xg_p6; ``` 此Procedure使用游标`cursor1`遍历`dept`表中的所有记录,并将每个部门的位置信息拼接到输出参数`x...
temp_result := temp_result || cursor_result.hotel_id || cursor_result.hotel_name; END LOOP; x_out := temp_result; END test_xg_p6; ``` 综上所述,存储过程是Oracle数据库中功能强大的编程工具,通过合理...
result = cursor.fetchone() except Exception as e: print("System error:", e) result = "error" finally: cursor.close() conn.close() return result ``` 在`AService`类中,`getA`方法首先建立数据库...
result = cursor.fetchone() if result: return True else: return False # 假设已从用户界面获取了username和password is_valid = validate_login('test_user', 'test_password') if is_valid: print("登录...
MySQLdb 提供了三个核心对象:`Connection`、`Cursor` 和 `Result`,它们构成了使用 MySQLdb 进行数据库操作的基础。 1. **Connection**:代表与 MySQL 服务器的一个连接。创建 Connection 对象通常涉及提供必要的...