Oracle.DataAccess 드라이브 사용 SQL 문 캐 시 오류 해결 방법
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Oracle.ManagedDataAccess.Client;
public partial class ptest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
using (OracleConnection connection = new OracleConnection(Common.connstr))
{
connection.Open();
OracleCommand cmd = new OracleCommand("select * from v_tmp ", connection);
OracleDataAdapter sa = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
sa.Fill(dt);
cmd.Parameters.Clear();
Response.Write(dt.Rows.Count.ToString());
}
}
}
v_tmp 보기 스 크 립 트 는 다음 과 같 습 니 다.
create or replace view v_tmp as
select 1 a,2 b from dual
보 기 를 바 꾸 지 않 고 실행 하 는 것 은 정상 입 니 다.우리 만 V 를 바 꿉 니 다.TMP 보기 구조 가 잘못 되 었 습 니 다.예 를 들 어:
create or replace view v_tmp as
select 1 a,2 b ,1 c from dual
create or replace view v_tmp as
select sysdate a,2 b from dual
이 문 제 는 주로 Oracle.DataAccess 가 성능 을 향상 시 키 기 위해 SQL 문장의 캐 시 를 추 가 했 기 때 문 입 니 다.배경 표 가 동적 이면 이 기능 을 제거 하고 데이터베이스 연결 에 추가 할 수 있 습 니 다. Metadata Pooling=false 설정 하면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.