반응형

안녕하세요

코딩하는남자 코남입니다

 

정말 정말 오랜만에 글을 쓰는듯해요..

개인적으로 이사도 하고..이직도하고..요 근래 참 많은 일들이 일어나고 있습니다ㅎㅎ

 

이번 포스팅은 프로그램단에서 오라클 쿼리를 날리실때 종종 만날수 있는 ORA 에러 코드 입니다

 

ORA-01756 : quoted string not properly terminated

ORA-01756 : 단일 인용부를 지정해 주십시오

 

 

오류 메세지의 형태는 오류 발생 위치에 따라 조금씩 다르게 보일 수 있습니다

저의 경우에는 C# 프로그램 내에서 쿼리에서 발생한 오류라 위와 같은 형태로 에러 메세지가 발생하였습니다

단일 인용부...이게 뭔말인지...

 

일단 모르면 구글링이 정답이죠??

 

 

역시 구글은 모르는게 없는듯 합니다..

제가 작성한 프로그램 내에  있는 쿼리문 중에 작은 따옴표가 누락이나 중복이 있다라는 얘기인데...

 

시작점의 작은따옴표가 누락되었네요..

참 알고 나면 별거 아닌데...찾는데 시간이 많이 걸렸습니다

 

저와 같이 ORA-01756 오류를 만나신 분들..프로그램안에서 작은 따옴표를 찾아보세요

 

그럼 이만~

반응형
반응형

MSSQL에서 오라클 DB를 링크드 설정하여 OPENQUERY를 실행하였을 경우 다음과 같은 오류가 발생합니다

 

이때 해결 하기 위한 방법 입니다

 

오류는 아래와 같이 나타 날 수 있습니다

이런 오류가 발생하였을때 SQL Server 서버시의 시작 계정에 필요한 권한을 부여하여 해결 할 수 있습니다

위의 해결 방안을 설정한 뒤 오라클의 dllhost에 정상적으로 오라클이 올라 왔는지 확인 한다

 

확인 방법은 아래 명령 프롬프트를 사용함

 

위의 이미지 처럼 명령 프롬프트에 오라클 DLL이 정상적으로 나타난다면 SSMS에 접속하여 다시 OPENQUERY를

 

실행하면 해결된 모습을 볼 수 있습니다

 

감사합니다

 

반응형
반응형

 

using System;
using System.Data;
using System.Data.OleDb;
class TableAnalysis
{
     static void Main(string[] args)
     {

        string sql = "Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=noaa;Persist Security

                        Info=True"; //oracle 서버 연결

        OleDbConnection conn = new OleDbConnection(sql);
        //conn.ConnectionString = sql;

        try
        {
             conn.Open(); //데이터베이스 연결
             OleDbCommand cmd = new OleDbCommand();
             cmd.CommandText = "select * from member"; //member 테이블
             cmd.CommandType = CommandType.Text; //검색명령을 쿼리 형태로
             cmd.Connection = conn;

             OleDbDataReader read = cmd.ExecuteReader(); //select * from member 결과

             Console.WriteLine("***** 테이블 분석 결과 *****");

            

             for (int i = 0; i < read.FieldCount; i++)
             {
                  Console.WriteLine("필드이름 : {0} \n", read.GetName(i));
              }
              Console.WriteLine("총필드 개수는" + read.FieldCount);
              read.Close();
           }

          catch (Exception ex)
           {
               Console.WriteLine("에러발생{0}", ex.Message);
           }
           finally
           {
                if (conn != null)
                {
                      conn.Close(); //데이터베이스 연결 해제
                      Console.WriteLine("데이터베이스 연결 해제..");
                 }
           }
      }
}
반응형

+ Recent posts