insert 쿼리를 하다 보면 필드 갯수가 많아지면 정신 없다. 나름 신경써서 컬럼명과 values 부분을 잘 한다고 했는데 그럼에도 불구하고 ORA-00947: not enough values 위와 같은 에러가 났다. 뭐지... 하고 찾아보니 INSERT문에서 ()안에 COLUMN명들을 적는데 그 COLUMN명과 뒤에 VALUES()안의 값들의 수가 일치하지 않아서 나는 에러였다. 그래서 다시 한번 천천히 살펴보니 아니나 다를까 컬럼명 쓰는 부분에서 한개를 빠뜨렸다..
DB 테이블을 다룰 때, 특정 조건의 데이터가 존재하는 경우에는 해당 row를 원하는 값으로 update하고, 없는 경우에는 새로운 데이터를 insert를 해야하는 경우가 왕왕 있습니다. 이럴 때 보통은 select 쿼리를 먼저해보고 데이터가 있는지 없는지 판단을 해서 update를 할 지 insert를 할 지 분기해서 처리했었는데요. oracle에서 MERGE INTO라는 구문을 쓰면 하나의 쿼리로 두가지 경우에 모두 대처할 수 있습니다. 아래와 같이 쓰면 됩니다. table을 지정했기 때문에 MATCHED, NOT MATCHED 이하에 update문과 insert문에 table_name은 생략됩니다. MERGE INTO table_name alias USING (table | view | subque..
인터넷을 뒤져도 proc나 esql에 대한 자료가 없어서 가장 기초적인 select 프로그램을 짜봤다. 이것만 마스터 한다면 어떠한 프로씨 프로그램도 코딩 기능하리라 본다. 참조로 c언어는 자바와 달라서 error handling을 안한다. 즉, 자바는 에러, exception이 발생하면 자동으로 exception handling을 하려 에러를 보여주는데 c언어는 그냥 에러가 발생해도 넘어간다. 즉 개발자가 일일히 에러가 발생할 만한곳에 에러 핸들링 코딩을 하지 않으면 자바처럼 에러를 뱉고 끝나는게 아니라 그냥 넘어간다. 자바를 먼저 코딩한 사람들은 이게 이상하다고 생각할 수 있는데 어쩔때는 장점도 될 수 있다. 구지 에러나도 안멈춰도 될만한 곳에는 그냥 넘어가니 좋다. 그러나! 일반적으로 에러코딩을 넣..
프로씨(proc) 강좌나 한국어 자료가 검색해보면 없다. 그래서 프로씨에 관해 궁금한 사람들을 위해 기초부터 전개해본다. 시중에 프로씨에 관한 책이 없기 때문에 충분한 내용이 전달안될 수도 있다. 하지만 소스는 저자가 직접 짜고 실행한것이기 때문에 안심해도 된다. 오라클 DB를 사용하면 프로씨, 인포믹스 DB를 사용하면 이씨(ec) 라고 불린다. 둘다 해봤지만 거의 내용이 동일하다. ec로 아주 기초적인 db에 데이터 insert 프로그램을 짜본다. main(int args, char *argv[]){ EXEC SQL BEGIN DECLARE SECTION; char work1[100]; EXEC SQL END DECLARE SECTION; memset(work1,0x00,sizeof(work1)); m..
db 쿼리를 하다가 이메일 형식에 필수요소인 @과 . 이 없는것을 찾으려고 했다. 그러나! 딱히 함수가 떠오르지 않았다. 그래서 검색하다가 결과를 정리해 본다. 좌측에서 몇 번째에 해당 문자가 있는지 알려주는 함수다. 0 이면 검색하고자 하는 값이 없는것이다. mssql일 경우 select charindex('a','abcd') 결과 1 오라클일 경우 select instr('abcd','a') from dual 결과 1 mysql일 경우 select instr('abcd','a') 결과 1 오라클과 mysql은 동일한 회사 소유라서 그런지 동일하다.. 즉, 내가 하고싶은 이메일주소에서 필수값이 없는것을 해보려면 select * from aa where instr(aa,'@')=0 aa테이블에 aa컬럼에..
유닉스 운영체제(OS)를 사용한다고 했을때 서로 다른 오라클 디비를 사용한다고 했을때 (예: 운영 DB, 테스트 DB) 운영데이터를 테스트 디비로 데이터를 이전할 일이 생긴다. 이럴때 아래 쉘을 사용할 수 있다. 운영데이터를 테스트로 복제해야할 경우 real_dbPw=$(/run/onl/orapw -u 아이디 -s 디비명} test_dbPw=${/run/onl/orapw -u 아이디 -s 디비명} exp 아이디/${real_dbPw}@운영디비명 file =./Data/$1.dmp log=./Data/$1.log tables=$1; sqlplus 아이디/${test_dbPw}@테스트디비명
- Total
- Today
- Yesterday
- 플러터
- esql
- KG
- ocjap
- 라이믹스 모듈
- webix
- JDBC
- 파이썬
- C
- 포인터
- 인포믹스
- 파싱
- 오라클
- 프로씨
- MySQL
- xe addon
- ocajp
- XE3
- php
- 자바
- C언어
- xe애드온
- proc
- 이클립스
- 문자열
- XE
- Python
- 자바 smtp
- 스크래핑
- EC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |