CI 묻고 답하기

제목 오라클 액티브쿼리 질문입니다.
글쓴이 뫄뫄잉뿌 작성시각 2015/12/14 08:36:48
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 18763   RSS

model 단에서 오라클 DB에 쿼리를 날리는데 액티브 쿼리를 통해 날리고 싶어서 코드를 짜봤는데 자꾸 에러가납니다.

저번에 올렸는데 아무래도 새로 올리는게 나을거같아서요...ㅜㅜ

틀린곳이 없는거같은데 왜안되는지 모르겠네요..

$this->exhibit_db->select('ex.EXH_NM,  bbs.ntt_sj, bbs.ATCH_FILE_ID, bbs.MOVIE_SN, bbs.THUM_SN, fdd.FILE_STRE_COURS, fd.STRE_FILE_NM AS movieNm, fdd.STRE_FILE_NM AS imgNm,
			  bbs.VIDEO_URL as link, bbs.MCOMPANY_ID, bbs.FRST_REGIST_PNTTM, bbs.LAST_UPDT_PNTTM',false);
$this->exhibit_db->from('T_EXHIBITION as ex');
$this->exhibit_db->join('LETTNBBS as bbs','ex.EXH_ID = bbs.EXH_ID');
$this->exhibit_db->join('LETTNFILEDETAIL as fd', 'fd.ATCH_FILE_ID = bbs.ATCH_FILE_ID and bbs.MOVIE_SN=fd.FILE_SN', 'left outer');
$this->exhibit_db->join('LETTNFILEDETAIL as fdd', 'fdd.ATCH_FILE_ID = bbs.ATCH_FILE_ID and bbs.THUM_SN=fdd.FILE_SN', 'left outer');
$this->exhibit_db->where('bbs.EXH_ID',$exh_id);
$this->exhibit_db->where('bbs.NTT_ID',$ntt_id);
		
$row = $this->exhibit_db->get()->result();
return $row;

 

 다음글 컨트롤 관련 질문드립니다. (2)
 이전글 file upload class 사용시 $config[... (2)

댓글

한대승(불의회상) / 2015/12/14 09:19:09 / 추천 0

어떤 에러가 발생 하나요?

뫄뫄잉뿌 / 2015/12/14 09:37:05 / 추천 0

Error Number:

 

SELECT ex.EXH_NM, bbs.ntt_sj, bbs.ATCH_FILE_ID, bbs.MOVIE_SN, bbs.THUM_SN, fdd.FILE_STRE_COURS, fd.STRE_FILE_NM AS movieNm, fdd.STRE_FILE_NM AS imgNm, bbs.VIDEO_URL as link, bbs.MCOMPANY_ID, bbs.FRST_REGIST_PNTTM, bbs.LAST_UPDT_PNTTM FROM "T_EXHIBITION" ex JOIN "LETTNBBS" bbs ON "ex"."EXH_ID" = "bbs"."EXH_ID" LEFT OUTER JOIN "LETTNFILEDETAIL" fd ON "fd"."ATCH_FILE_ID" = "bbs"."ATCH_FILE_ID" and bbs.MOVIE_SN=fd.FILE_SN LEFT OUTER JOIN "LETTNFILEDETAIL" fdd ON "fdd"."ATCH_FILE_ID" = "bbs"."ATCH_FILE_ID" and bbs.THUM_SN=fdd.FILE_SN WHERE "bbs"."EXH_ID" = 'EXH_0000000000000315' AND "bbs"."NTT_ID" = '916'

Filename: /home/www/public_html/mhellot_test/modules/exhibit/models/exhibit_model.php

 

이렇게만 나오는데...어떤에러인지보려면 어떻게해야하나요?

한대승(불의회상) / 2015/12/14 09:55:17 / 추천 0

에러로 출력된 SQL문을 복사하여 오라클 클라이언트(toad 같은)에서 직접 실행 시켜 보세요.

뫄뫄잉뿌 / 2015/12/14 10:16:21 / 추천 0

"bbs"."EXH_ID": invalid identifier 

 

라고 나오네요..ㅠㅠ

필드명은 일치하는데..

쌈닭 / 2015/12/14 14:33:23 / 추천 0

오타나 해당 컬럼이 실제 테이블에 생성되어 있는지 확인해 보라고 하네요...

뫄뫄잉뿌 / 2015/12/14 14:50:41 / 추천 0

쌍따옴표가 문제인거같습니다. 오라클 클라이언트에서 똑같은 구문인데도 쌍따옴표만 다 없앴더니 정상적으로 결과가 나오네요...

없애는 방법이 없을까요?ㅜㅜ

쌈닭 / 2015/12/14 15:00:44 / 추천 0

혹시 ODBC 드라이버 사용하시나요?

 

좀 오래돼서 가물가물하긴 한데...

 

/system/database/drivers/odbc/odbc_driver.php 에서

 

protected $_escape_char = '';

 

여기에 오라클 이스케이프 문자를 넣어서 해보실래요?

뫄뫄잉뿌 / 2015/12/14 15:17:24 / 추천 0

oci8를 사용해서 oci8_driver에서

http://stackoverflow.com/questions/17053250/codeigniter-activerecords-and-oracle-configuration

이곳을 참고해서 replace해보았는데도 여전히 쌍따옴표가 붙네요..

 

쌈닭/ $_escape_char = '"';로 쌍다옴표가 이미 선언되어있었습니다 ㅜㅜ

뫄뫄잉뿌 / 2015/12/14 15:47:12 / 추천 0

해결했습니다!

 

oci8_driver.php 603라인에

$str = $item;

으로 바꿔주면 되네용 ㅎㅎ