iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >oracle存储过程执行报错ORA-12828该怎么办
  • 336
分享到

oracle存储过程执行报错ORA-12828该怎么办

2024-04-02 19:04:59 336人浏览 独家记忆
摘要

oracle存储过程执行报错ORA-12828该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。    今天,一开发

oracle存储过程执行报错ORA-12828该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

   今天,一开发同事找来,说他的存储过程在龙岩地市执行报错ORA-12828,说代码执行到如下代码块的时候报错退出:

EXECUTE IMMEDIATE 'ALTER TABLE FACT_COSTS TRUNCATE PARTITioN P_FACT_COSTS_'||PRM_MONTH||' update global indexes';

    查看oracle联机文档对ORA-12828的解释:

[oracle@se31 ~]$ oerr ora 12828
12828, 00000, "Can't start parallel transaction at a remote site"
// *Cause: PDML transaction cannot be started because we are not in the
//         coordinator site of the distributed transaction.
// *Action: Do not use PDML at remote sites.
[oracle@se31 ~]$ 

    查询oracle support知识库,有篇文档(ID 1535660.1)与ORA-12828相关

InfORMation in this document applies to any platform.
SYMPTOMS

The remote parallel index rebuild runs serial even if enabling parallel replication propagation at the database link level. For example if a database link is created for a particular destination database, and enabling parallel propagation for a database link, then Oracle uses multiple parallel slave processes to replicate to the corresponding destination. But it doesn't work while parallel index rebuild remotely through a procedure. In detail:
CAUSEAs the Bug 14684769 states, this works as expected and it is not supported to parallelize the index by using the dblink.
SOLUTION

The dblink is not supported to parallelize the rebuild index.

As per the fix for Bug 2166879, create index will not be compiled for parallel execution if it is being executed in a distributed txn.

BUG:2166879 - ORA-12828 WHEN INDEX CREATED IN PARALLEL MODE THROUGH REMOTE PROCEDURE<br font-size:16px;white-space:normal;background-color:#FFFFFF;" />

    

    查看开发同事提供的代码并没有使用到dblink,根据oracle官方(ID 1535660.1)提示,ORA12828与索引重建有关,

让开发同事尝试去掉update global indexes子句重新执行,可成功执行。其实更新表数据同步更新索引,是防止分区表分区索引失效。

于是,建议他将索引重建子句去除,另外在存储过程中添加专门的索引重建语句(经他测试,可以执行)。

另外,根据他提供的信息该代码并不是在所有地市都报错,只有目前的龙岩windows server 2008R2 oracle 11.2.0.3单实例下。

看完上述内容,你们掌握oracle存储过程执行报错ORA-12828该怎么办的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: oracle存储过程执行报错ORA-12828该怎么办

本文链接: https://www.lsjlt.com/news/65983.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle存储过程执行报错ORA-12828该怎么办
    oracle存储过程执行报错ORA-12828该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。    今天,一开发...
    99+
    2024-04-02
  • oracle怎么并行执行存储过程
    在Oracle数据库中,存储过程可以通过使用并行执行来提高性能。以下是一些方法来实现并行执行存储过程: 使用并行提示:可以在存储...
    99+
    2024-04-09
    oracle
  • plsql怎么执行oracle存储过程
    在PL/SQL中执行Oracle存储过程可以通过以下步骤实现: 编写存储过程: 首先,需要在Oracle数据库中创建存储过程。可以...
    99+
    2024-04-09
    plsql oracle
  • dbeaver执行存储过程报错怎么解决
    当使用DBeaver执行存储过程时遇到报错,通常有以下几种解决方法: 检查存储过程的语法:确保存储过程的语法是正确的,没有语法错...
    99+
    2024-03-14
    dbeaver
  • oracle存储过程执行计划怎么看
    oracle存储过程执行计划提供了执行信息,包括访问路径、估计行数、连接顺序和成本。要查看执行计划,请执行 explain plan 命令,查找“执行计划”部分。执行计划包含表头和正文,...
    99+
    2024-04-19
    oracle access
  • oracle中怎么手动执行存储过程
    在Oracle中手动执行存储过程,可以使用以下步骤: 打开SQL开发工具,如SQL Developer、Toad等。 使用以...
    99+
    2024-03-12
    oracle
  • plsql怎么执行存储过程
    在 PL/SQL 中执行存储过程的方法有以下几种:1. 使用 EXECUTE 或 EXECUTE IMMEDIATE 语句:```s...
    99+
    2023-09-23
    plsql
  • jdbc怎么执行存储过程
    在Java中执行存储过程可以使用JDBC的CallableStatement对象。下面是一个执行存储过程的示例代码:java// 创...
    99+
    2023-10-24
    jdbc
  • navicat怎么执行存储过程
    在 navicat 中执行存储过程的步骤如下:连接到数据库。浏览并右键单击存储过程。选择“执行存储过程”。指定输入参数(可选)。执行存储过程。查看输出(可选)。 Navicat中执行存...
    99+
    2024-04-24
    navicat
  • oracle怎么看存储过程的执行计划
    查看 oracle 存储过程的执行计划:启用执行计划:set explain plan on;执行存储过程;启用跟踪:set autotrace on;查看执行计划输出,包括操作、行数、...
    99+
    2024-04-19
    oracle access
  • MyBatis中怎么执行存储过程
    在MyBatis中执行存储过程通常有两种方法: 使用select标签调用存储过程: <select id="ca...
    99+
    2024-03-07
    MyBatis
  • SQLServer中怎么执行存储过程
    要在SQL Server中执行存储过程,可以按照以下步骤操作: 打开SQL Server Management Studio(S...
    99+
    2024-03-12
    SQLServer
  • plsql中怎么执行存储过程
    在PL/SQL中执行存储过程可以通过以下步骤实现: 使用 EXECUTE 或者 EXEC 关键字来执行存储过程。 在EXECUTE...
    99+
    2024-03-12
    plsql
  • oracle怎么看存储过程执行到哪里了
    追踪 oracle 存储过程执行位置的方法包括:使用 dbms_application_info 包中的 dbms_application_info.action 函数直接查看。启用 p...
    99+
    2024-04-19
    oracle
  • oracle怎么看存储过程执行到哪里了?
    oracle中查看存储过程执行进度:启用sql跟踪:alter session set sql_trace=true;执行存储过程;检查跟踪文件(ora.trc);分析执行计划和统计信息...
    99+
    2024-04-18
    oracle
  • oracle查询存储过程执行情况怎么查
    通过查询 v$sql_monitor 视图,可以查询 oracle 存储过程的执行情况,获取有关执行时间、cpu 使用时间、执行次数等信息,以识别潜在的性能问题。 如何查询 Oracl...
    99+
    2024-04-19
    oracle
  • oracle存储过程执行日志在哪
    oracle存储过程执行日志位于以下文件夹:windows:%oracle_base%\diag\rdbms[oracle_sid][oracle_sid]\trace\unix:$or...
    99+
    2024-04-19
    oracle
  • mysql怎么执行多个存储过程
    要执行多个存储过程,可以使用MySQL的CALL语句。以下是一个示例:```CALL 存储过程1();CALL 存储过程2();```其中,"存储过程1"和"存储过程2"是你要执行的两个存储过程的名称。你可以根据实际情况替换它们。每个C...
    99+
    2023-08-11
    mysql
  • 怎么使用MyBatis执行存储过程
    要使用MyBatis执行存储过程,首先需要在MyBatis的Mapper XML文件中编写一个对应的存储过程的SQL语句。然后在Ja...
    99+
    2024-04-23
    MyBatis
  • jdbc执行存储过程是什么
    JDBC(Java Database Connectivity)执行存储过程是通过Java程序连接到数据库,并调用数据库中定义的存储...
    99+
    2023-10-24
    jdbc
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作