首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用OCI向db发送PL/SQL块总是返回rows_affected=1 (ORACLE DB)

OCI是Oracle Cloud Infrastructure的缩写,是Oracle提供的一种云计算平台。PL/SQL是Oracle数据库的编程语言,用于编写存储过程、触发器和函数等数据库逻辑。

当使用OCI向Oracle数据库发送PL/SQL块时,无论PL/SQL块是否对数据库进行了修改,rows_affected始终返回1。这是因为OCI在执行PL/SQL块时,只关注PL/SQL块是否成功执行,而不关心具体的修改行数。

这种行为在某些情况下可能会导致困惑,特别是当PL/SQL块没有实际修改数据库中的数据时。为了获取实际的受影响行数,可以使用SQL%ROWCOUNT变量来获取。

以下是一个示例代码,展示了如何使用OCI执行PL/SQL块并获取实际的受影响行数:

代码语言:txt
复制
import cx_Oracle

# 连接到Oracle数据库
connection = cx_Oracle.connect("username", "password", "host:port/service_name")

# 创建游标
cursor = connection.cursor()

# 执行PL/SQL块
plsql_block = """
DECLARE
  rows_affected NUMBER;
BEGIN
  -- 在这里编写你的PL/SQL逻辑

  -- 获取受影响行数
  rows_affected := SQL%ROWCOUNT;
  DBMS_OUTPUT.PUT_LINE('Rows Affected: ' || rows_affected);
END;
"""
cursor.execute(plsql_block)

# 提交事务
connection.commit()

# 关闭游标和连接
cursor.close()
connection.close()

在上述示例中,我们使用了cx_Oracle库来连接到Oracle数据库,并执行了一个包含PL/SQL逻辑的块。在PL/SQL块中,我们可以编写任何需要执行的逻辑。在示例中,我们使用了SQL%ROWCOUNT变量来获取实际的受影响行数,并通过DBMS_OUTPUT.PUT_LINE函数将其输出到控制台。

对于OCI的具体使用和更多信息,可以参考腾讯云的Oracle Cloud Infrastructure产品介绍页面:Oracle Cloud Infrastructure产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

安装oracle11g oci.exe,oracle 11g安装图解|安装oracle数据库软件详细教程

Oracle完成安装后,会在系统中进行服务的注册,在注册的这些服务中有以下两个服务必须启动,否则Oracle将无法正常使用: (1)OracleOraDb11g_home1TNSListener:表示监听服务...B、PL/SQL Developer 安装注意点: 配置oracle的环境变量: TNS_ADMIN — F:\app\kevin\product\11.2.0\dbhome_1\NETWORK\ADMIN...我的系统环境: 1、64位Windows 7旗舰版 2、64位Oracle 11g R2 DB 3、32位Oracle 11g Client(64位Oracle 11g Client会出错) 4、PL/...SQL Development 8.0.4 注意: (1)PL/SQL Development不要安装在默认的C:\Program Files (x86)目录下,否则会报错,原因是不能解析这个带()的路径...原因:oci.dll是64位的,32位应用程序PL/SQL Developer无法加载,可以安装一个32位的Oracle Client来解决。

1.3K20

对于Oracle兼容,我们手拿把掐

生态工具包括: 1)兼容性评估工具,包含异构数据库静态对象、应用SQL差异性评估、异构迁移自动改造、Oracle数据迁移和数据同步; 2)开发工具,包括SQL Developer, PL/SQL Developer...PL/SQL语法兼容 PL/SQL语法兼容Oracle 存储过程、函数的创建,如:以IS作为PLSQL定义开始、可以用/作为定义结束 存储过程、函数支持COMMIT、ROLLBACK事务控制 兼容游标属性支持...PL/SQL - 语法 Oracle存储过程/函数语法特点: 以IS作为代码的起始定义 使用/作为结束定义结束 使用END procname作为函数代码结束、等 PostgreSQL存储过程/函数语法特点...: 以AS作为代码的起始定义 使用;作为定义结束 使用$$定义整体代码、等 9....PL/SQL - PACKAGE PACKAGE支持: 支持公共、私有包变量定义 支持包定义自定义类型 支持包初始化模块 包初始化等 10.

1.9K20

Oracle 开放源代码项目

Oracle 开放源代码项目 这是无数个可扩展、使用以及构建于 Oracle 技术的开放源代码项目中的一个简短的示例。...PL/FLOW PL/FLOW 是用 Oracle PL/SQL 编写的工作流引擎,按照工作流管理联盟的规定实施接口 1 和 2(进程定义和客户端 API)。...DB Web Admin DB Web Admin 提供通过 Web 对 Oracle 数据库和应用程序的简单访问。显示现有用户、进程和系统锁定,还允许用户终止会话并执行 SQL 查询。...Oracle PL/SQL 代码编辑器 Oracle PL/SQL 代码编辑器使您可以连接到任何 Oracle 数据库,浏览数据库对象,编辑和调试突出语法主题的 PL/SQL 代码。...主要面向某种 PL/SQL IDE,免费下载、使用、修改! Pretoria Pretoria 是一种操作 Oracle 索引文件的工具。

3.1K80

关于PLSQL Developer与Oracle客户端

背景:国内使用Oracle的群体,几乎都会使用PL/SQL Developer这个图形化的工具进行日常数据维护。这个软件需要依赖Oracle客户端,且必须是32位的客户端。...有些在windows环境下使用64位Oracle服务端的用户(常见于开发测试环境),会直接再安装一个32位的客户端,便于使用PL/SQL Developer。...如果你在使用PL/SQL Developer连接数据库遇到类似这样的错误提示: Initialization error Could not initialize "C:\oracle\product\...10.2.0\db_1\bin\oci.dll" Make sure you have the 32 bits Oracle Client installed. ?...另外注意,Windows平台,后安装的软件,环境变量默认是在最前面,比如说安装了32位客户端之后,又安装了64位服务端或客户端,那么原本可以用的PL/SQL Developer就会用不了,需要按照上面的方法设置正确的

1.3K10

Greenplum使用oralce_fdw连接oracle

Greenplum使用oralce_fdw连接oracle 目录 Greenplum使用oralce_fdw连接oracle 1 1 下载oracle客户端,放到/data目录下(主节点) 1 2 在root...和gpadmin用户下配置环境变量(主节点) 1 2.1 配置环境变量 1 2.2 建立软连接 2 2.3 修改权限 2 3 下载编译oracle_fdw(主节点) 2 4 编译(主节点) 2 5 复制编译文件到所有节点...=$ORACLE_HOME export OCI_INC_DIR=$ORACLE_HOME/sdk/include export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH...-c -m 644 oracle_fdw--1.2.sql oracle_fdw--1.0--1.1.sql oracle_fdw--1.1--1.2.sql '/usr/local/greenplum-db...6 分发oracle客户端到所有节点 1、用gpadmin用户把 /data/instantclient 发送到其他的segment节点上的相同目录下 2、并把master节点上的环境变量发送到其他的

1.2K00

plsql developer配置数据库连接_plsql使用教程

使用PL/SQL Developer客户端工具的时候,一定要了解一下两点知识,它不同于sql server和mySql的客户端那样可直接使用。...针对32位的数据库:这个比64位的就简单多了,只需要一个PL/SQL工具即可,再最后配置(这个配置就是需要使用到一个tnsnames.ora文件,该文件需要和oracle数据库文件相同,不然无法进行连接...二、配置 (1)如果自己本机上装有Oracle数据库,就不需要使用Oracle的客户端,通过PL/SQL可以直接连接数据库。.../SQL Developer,不用登陆直接点取消进入PL/SQL Developer主界面,然后找到工具——首选项——连接: 填写:Oracle主目录名:c:instantclient OCI库:...设置Oracle Home 为oracle安装目录home 如:D:Oracle11gFileproduct11.2.0dbhome_1 设置OCI Library为oracle客户端的oci.dll文件的全路径名

6K30

Oracle 基础系列之1.1 oracle的安装

system用户就可以了 二、安装步骤 1、去oralce官网下载oracle  db,下载地址是http://www.oracle.com/technetwork/database/enterprise-edition...21、设置监听程序和本地网络服务(如果你打算使用Oracle自带的SQL Developer进行Oracle数据库的管理,那么跳过这一步,直接进行22操作,如果你打算使用第三方的Oracle客户端管理软件...(如PL/SQL Developer)进行Oracle数据库的管理,那么请进行这一步的操作) Oracle Net Configuration(监听程序和网络服务配置) 22、客户端管理软件安装 下载PL.../SQL Developer软件,然后..........傻瓜式安装,安装完成,打开PL/SQL Developer ?...设置Oracle Home为Oracle的安装路径为:F:\app\Administrator\product\11.2.0\dbhome_1,我是安装在F盘的 设置OCI library路径为:F:\

889100

Oracle|SGA (System Global Area)详解

内存结构 1、Fixed SGA 固定SGA 可以把这个区想成是 SGA中的“自启”区,Oracle在内部要使用这个区来找到SGA的其他区。...在完成解析整个查 询的任务之前, Oracle会搜索共享池,看看这个工作是否已经完成。 PL/SQL运行的代码就在共享池中缓存,所以下一次运行时,Oracle不会再次从磁盘重新读 取。...PL/SQL代码不仅在这里缓存,还会在这里共享。如果有1 000个会话都在执行同样的代码,那么只会加载这个代码的一个副本,并由所有会话共享。 Oracle把系统参数存储在共享池中。...用JAVA语言代替PL/SQL语言在数据库中写存储过程才会用到这部分内存。 7、Stream pool 流池 9iR2以上增加了“流”技术,10g以上在SGA中增加了流池。...总 结 32位Oracle1G内存:SHARED_POOL_SIZE=100MB,DB_CACHE_SIZE=0.5GB; 2G内存:SHARED_POOL_SIZE=150MB,DB_CACHE_SIZE

62920
领券