【问题标题】:Error: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP错误:ORA-01652:无法在表空间 TEMP 中将临时段扩展 128
【发布时间】:2015-07-08 14:44:01
【问题描述】:

下午好,我正在运行一个过程并返回一个游标,所以出现 ORA-01652 错误:无法在表空间 TEMP 中将临时段扩展 128

C#、ASP.NET

OracleCommand cmd = connection.CreateCommand(); OracleDataReader博士;

        DataTable dt = new DataTable();

        try
        {
            OpenConn();

            cmd.CommandText = "UNITIZA_RELATORIOS.getComparaZila";
            cmd.CommandType = CommandType.StoredProcedure;

            OracleParameter par1 = new OracleParameter("vElemServico", OracleType.VarChar);
            par1.Value = elemServico;
            par1.Direction = ParameterDirection.Input;

            OracleParameter par2 = new OracleParameter("vdataInicio", OracleType.VarChar);
            par2.Value = dataInicio;
            par2.Direction = ParameterDirection.Input;

            OracleParameter par3 = new OracleParameter("vdataFim", OracleType.VarChar);
            par3.Value = dataFim;
            par3.Direction = ParameterDirection.Input;

            OracleParameter par4 = new OracleParameter("vOrdem", OracleType.VarChar);
            par4.Value = ordem;
            par4.Direction = ParameterDirection.Input;

            OracleParameter par5 = new OracleParameter("vCodAneel", OracleType.VarChar);
            par5.Value = codigoAneel;
            par5.Direction = ParameterDirection.Input;

            OracleParameter par6 = new OracleParameter("nCodigoError", OracleType.Number);
            par6.Size = 1;
            par6.Direction = ParameterDirection.Output;

            OracleParameter par7 = new OracleParameter("return_value", OracleType.Cursor);
            par7.Direction = ParameterDirection.ReturnValue;

            cmd.Parameters.Add(par1);
            cmd.Parameters.Add(par2);
            cmd.Parameters.Add(par3);
            cmd.Parameters.Add(par4);
            cmd.Parameters.Add(par5);
            cmd.Parameters.Add(par6);
            cmd.Parameters.Add(par7);

            dr = cmd.ExecuteReader();              

            dt.Load(dr);

            return dt;

注意:只有当内容查询超过1800行时才会报错

【问题讨论】:

    标签: c# asp.net oracle


    【解决方案1】:

    这表明您的进程正在消耗所有临时表空间...可能是低效的连接或查询语法。看看解释计划,看看为什么它需要这么多空间。优化查询可能比其他解决方案更容易:

    来自here 通过运行以下命令创建一个新的数据文件:

    alter tablespace TABLE_SPACE_NAME add datafile 'D:\oracle\Oradata\TEMP04.dbf' size 2000M autoextend on;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2021-09-18
      • 1970-01-01
      • 2017-07-01
      相关资源
      最近更新 更多