ETC2017.06.20 11:35

# 헤더파일 추가

1. Go to project->build options.

2. "search directories"

3. "compilers" sub tab.

4. Click add, select the file and you are done.



# 라이브러리 추가

1. 글로벌 Settings

2. Compiler

3. Linker Settings

4. Click add, select the file and you are done.

신고
Posted by Tiwaz
ORACLE2017.06.20 11:33

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


ERROR:

ORA-28040: No matching authentication protocol


# sqlnet.ora 파일에 아래와 같이 한줄 추가

SQLNET.ALLOWED_LOGON_VERSION = 9


신고
Posted by Tiwaz
ETC2017.06.20 11:30

QT를 이용하여 오라클 데이터베이스에 접속하는 프로그램을 만들고자 할 경우 QOCI, QODBC 등의 방법으로 접속을 할수 있습니다.

저의 테스트 환경인 QT 5.9 버전에서는 QOCI에 대한 SQL Database Drivers는 제공되지 않기 때문에 직접 생성하여 사용해야합니다.



1. 환경 변수 설정

QTDIR=C:\Qt\Qt5.9.0\5.9\mingw53_32\bin


#### mingw32-make.exe를 사용하기 위한 환경변수의 PATH에 추가

C:\Qt\Qt5.9.0\Tools\mingw530_32\bin



#### 적용 예 : PATH=%PATH%;%QTDIR%\bin;C:\Qt\Qt5.9.0\Tools\mingw530_32\bin



2. cmd.exe를 실행하여 아래와 같이 컴파일 진행

set INCLUDE=%INCLUDE%;N:\app\product\11.2.0\client_1\oci\include

set LIB=%LIB%;N:\app\product\11.2.0\client_1\oci\lib\msvc

set QMAKE_DEFAULT_INCDIRS=N:\app\product\11.2.0\client_1\oci\include

qmake oci.pro

mingw32-make


정상적으로 빌드가 될 경우

C:\Qt\Qt5.9.0\5.9\Src\qtbase\plugins\sqldrivers 경로에 qsqloci.dll, qsqlocid.dll 파일이 생성됨.



3. qmake로 컴파일 진행 중 아래 에러가 발생할 경우

- ERROR : Project ERROR: Library 'oci' is not defined.


#### oci.pro 파일의 원본을 열어서 수정 해야함.

------------------------------------------------------------

TARGET = qsqloci


HEADERS += $$PWD/qsql_oci_p.h

SOURCES += $$PWD/qsql_oci.cpp $$PWD/main.cpp


# QMAKE_USE += oci  >> 오라클 클라이언트에서 제공하는 oci.lib를 이용하여 컴파일을 하였더니 OCI 함수를 못찾는 경우가 발생하여 instant-client의 oci.dll 파일로 대체하여 컴파일 하였음.

QMAKE_LFLAGS += oci.dll


darwin:QMAKE_LFLAGS += -Wl,-flat_namespace,-U,_environ


OTHER_FILES += oci.json


PLUGIN_CLASS_NAME = QOCIDriverPlugin

include(../qsqldriverbase.pri)


------------------------------------------------------------

#### 다시 컴파일 진행 : qmake "LIBS+=-loci" oci.pro



4. mingw32-make로 컴파일 진행 중 아래 에러가 발생할 경우

- ERROR : qsql_oci.cpp:65:17: fatal error: oci.h: No such file or directory

Makefile.Debug / Makefile.Release을 열어서 INCPATH와 LIBS 변수에 오라클의 $ORACLE_HOME/oci/include와 $ORACLE_HOME/oci/msvc 경로를 각각 설정하고 다시 mingw32-make 를 실행함.



5. qsqloci.dll을 생성하기 위한 참조 경로


# oci.pro path

C:\Qt\Qt5.9.0\5.9\Src\qtbase\src\plugins\sqldrivers\oci


# plugin path

C:\Qt\Qt5.9.0\5.9\mingw53_32\plugins\sqldrivers


# OCI HOME

N:\app\product\11.2.0\client_1\oci


# OCI INCLUDE

N:\app\product\11.2.0\client_1\oci\include


# OCI MSVC

N:\app\product\11.2.0\client_1\oci\lib\msvc


# release path

C:\Qt\Qt5.9.0\5.9\Src\qtbase\plugins\sqldrivers


# 참조 페이지 

http://doc.qt.io/qt-5/sql-driver.html#qodbc

https://stackoverflow.com/questions/17601662/how-to-build-qt-qoci-oracle-database-driver-on-windows-with-mingw

http://www.oracle.com/technetwork/topics/winsoft-085727.html

신고
Posted by Tiwaz
ORACLE2017.03.31 15:22
ORACLE2017.03.29 10:22

오라클 9i 이상부터는 spfile이 새로 추가되었고 사용을 권장하고 있습니다.

또한 바이너리 파일이고 사용자가 직접 수정하면 파일이 깨진다는 사실을 오라클을 배운사람들이라면 누구나 잘 알거라고 생각됩니다.

spfile이나 pfile에 대한 정보는 이미 잘 설명된 곳이 있으니 다른 곳을 참조바랍니다.


오라클 파라미터는 일반 파라미터와 밑줄이 하나 있는 Hidden 파라미터가 존재합니다.

그런데 SPFILE로 부터 만들어진 pfile에서 밑줄이 두개있는 파라미터를 보신적이 있으신가요 ?


...
PERF.__shared_io_pool_size=0
PERF.__shared_pool_size=620756992
PERF.__streams_pool_size=0
*._optim_peek_user_binds=TRUE
*.audit_file_dest='/app/oracle/admin/PERF/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
... 

위와 같은 __XXXX 가 두개 있는 파라미터는 AMM(Automatic Memory Management)와 ASMM(Automatic Shared Memory Management)를 사용할 경우 SGA와 PGA의 할당된 현재 사이즈입니다.

SPFILE을 참조하여 기동 될 경우 자동적으로 할당된 값입니다.


신고
Posted by Tiwaz