728x90
반응형
SMALL
 MERGE INTO myTable
USING DUAL
  ON  (name = '사과')
WHEN MATCHED THEN       
	UPDATE SET 
	keyword          = 'apple'
WHEN NOT MATCHED THEN
	INSERT INTO myTable (
		keyword
	) VALUES (
		'apple'
	)

 

merge into로 쓸때는

insert ()

values()

형태로 써야한다.

최초 입력시 insert into myTable에서 into myTable을 삭제해야 한다.

 

728x90
반응형
LIST
728x90
반응형
SMALL

union을 쓸 경우

위 아래 함수의 컬럼과 형식이 맞아야 한다

 

select seq from tableA
union
select seq from tableB

위와 같은 쿼리에서 tableA의 seq가 number이고 tableB의 seq가 charctor라면 발생하는 에러이다

이럴땐 to_char로 감싸주면 해결된다.

SELECT TO_CHAR(SEQ) AS SEQ FROM tableA
UNION
SELECT TOO_CHAR(SEQ) AS SEQ FROM tableB

 

 

728x90
반응형
LIST
728x90
반응형
SMALL

invalid identifier = 부적합한 식별자

주로 테이블이나 컬럼등의 쿼리 오타일 경우가 많다.

아니면 특수문자가 들어간 경우 >> CDATA로 감싸줘야 한다.

아니면 (')따옴표나 (")쌍따옴표 표기가 잘못된 경우

728x90
반응형
LIST
728x90
반응형
SMALL

ORA-00918: column ambiguously defined

>> 컬럼 중복 에러

 

쿼리 작성 중 join이나 서브쿼리 등 두개 이상의 테이블을 이용하는 쿼리에서 발생

 

테이블을 명시적으로 A, B 등으로 나눈 후 각 컬럼에서 A.**, B.**로 명시해주면 해결됨

 

mydata Table

num name
1 홍길동
2 손흥민
3 이강인

 

otherdata Table

num name
1 메시
2 호날두

 

select num, name
from mydata, otherdata

 

두개의 쿼리 내에 같은 컬럼이면 에러 발생됨

 

select A.num, A.name
from mydata A, otherdata B

 

이처럼 변경하면 A라는 테이블의 컬럼을 이용하는 것으로 에러가 발생되지 않음.

728x90
반응형
LIST
728x90
반응형
SMALL

SQL> startup

 

ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated

ORA-01262: Stat failed on a file destination directory

Linux Error: 2: No such file or directory

 

에러 발생시 대처 방법

 

먼저 init.ora 파일을 찾아야 한다.

/opt/oracle/admin/orcl/pfile/init.ora.028201318198

 

SQL> startup mount pfile=/opt/oracle/admin/orcl/pfile/init.ora.028201318198;

 

ORACLE instance started.

 

Total System Global Area  849530880 bytes

Fixed Size                  1339824 bytes

Variable Size             499125840 bytes

Database Buffers          343932928 bytes

Redo Buffers                5132288 bytes

Database mounted.

728x90
반응형
LIST

'개발' 카테고리의 다른 글

공인인증기관 CRL DP 주소  (0) 2024.11.04
VMware Workstation unrecoverable error:(vmui)  (0) 2024.11.03
[mybatis] if else  (1) 2024.11.01
[Oracle] oracle - php 연동  (2) 2024.10.31
[Nexacro][Grid] 개행  (0) 2024.09.20
728x90
반응형
SMALL

기본 환경

 

CentOS 5.8 32bit

Apache/2.2.3

PHP 5.1.6

mysql  Ver 14.12 Distrib 5.0.95

 

 
php와 oracle의 연동을 하기 위해
# vi /etc/php.ini
에서
extension=oci8.so
라는 내용을 넣은 후
# php -v
하면
 
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oci8.so' - /usr/lib/php/modules/oci8.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.1.6 (cli) (built: Jun 27 2012 12:21:16)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
 
라는 내용이 나온다.
 
아래 3줄은 당연한 내용이지만 PHP Warning이 주된 내용이다.
 
oci8.so....
 
# find -name oci8.so
검색 결과는 없다..
 
oci8을 다운받아야 할듯....
 
oci8-1.4.4.tgz를 다운받았으나, oci8.so는 없다.
phpize ? configure ? 등등을 찾을래도 찾을 수 없다...........ㅡ.ㅡ;;;;;;;;;;
 
 
# phpize
파일이나 디렉토리가 없다고 나옴
 
# yum -y install php-devel.i386
Complete!
 
설치 확인
# rpm -qa | grep php-devel
php-devel-5.1.6-39.el5_8
 
phpize 확인
# phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
 
config.m4 위치 확인
# find / -name config.m4
/home/oci8-1.4.4/config.m4
 
이동
# cd /home/oci8-1.4.4
 
재 실행
# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20050922
Zend Extension Api No:   220051025
 
phpize 확인 완료
 
 
오라클 instant client 다운로드
에서 
oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm 
다운로드 후 리눅스로 업로드
 
오라클 instant client 설치
# rpm -i *basic*
# rpm -i *devel*
예 ) error: Failed dependencies: 일 경우 libaio 설치 후 다시 시도
 
실행확인
# rpm -qa | grep oracle
oracle-instantclient11.2-devel-11.2.0.3.0-1
oracle-instantclient11.2-basic-11.2.0.3.0-1
 
oci8 설치
# pecl download oci8
# tar xvzf oci8-1.4.7.tgz
 
# cd oci*
# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20050922
Zend Extension Api No:   220051025
 
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
# ln -s /usr/include/oracle/11.2/client/ /usr/lib/oracle/11.2/client/lib/include
# make all install
...
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
 
Installing shared extensions:     /usr/lib/php/modules/
 
설치 확인
# ll /usr/lib/php/modules/oci8.so
-rwxr-xr-x 1 root root 410934  2월  6 10:08 /usr/lib/php/modules/oci8.so
 
PHP와 OCI 연동
# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
# service httpd restart
 
PHP와 OCI 연동 확인
# php -r "oci_connect();"
PHP Warning:  Module 'oci8' already loaded in Unknown on line 0
PHP Warning:  oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1
 
phpinfo() 확인 결과 
 
OCI8 카테고리 생성 확인
 
728x90
반응형
LIST

'개발' 카테고리의 다른 글

ora-01261 and ora-01262  (0) 2024.11.02
[mybatis] if else  (1) 2024.11.01
[Nexacro][Grid] 개행  (0) 2024.09.20
[Nexacro][Grid] Dataset 중복체크  (0) 2024.06.04
[Nexacro][Grid] cell edittype 변경  (0) 2024.06.04
728x90
반응형
SMALL

DB에서 쿼리를 이용하여 조회한 데이터를 화면에 보여줄때

<br>같은 개행이 들어간 경우가 있다.

그러나 모바일 화면에서 웹브라우저를 통해 확인해보면 <br>이 그대로 보여진다.

이럴경우 쿼리에서 <br>chr(10)으로 Replace해줘야 한다.

<![CDATA[REPLACE(mydata, '<br>', chr(10)) AS mydata]]>

 

728x90
반응형
LIST

'개발' 카테고리의 다른 글

[mybatis] if else  (1) 2024.11.01
[Oracle] oracle - php 연동  (2) 2024.10.31
[Nexacro][Grid] Dataset 중복체크  (0) 2024.06.04
[Nexacro][Grid] cell edittype 변경  (0) 2024.06.04
[Nexacro][Grid] cell edit  (0) 2024.05.22

+ Recent posts