'DB'에 해당되는 글 10건
- 2014.02.07 [DB/MSSQL] SQLGate 2010 for SQL Server Developer, 다른 포트 사용시
- 2012.10.12 [ORACLE/PLSQLDEV] PL/SQL Developer 한 화면에서 쿼리를 선택하지 않고 실행 설정, AutoSelect Statement
- 2012.09.14 [DB/ORACLE] 오라클 셀렉트인서트, SELECT, INSERT
- 2011.03.28 [ORACLE/LINUX] sqlplus 접속 에러, ORA-12162: TNS:net service name is incorrectly specified 1
- 2011.01.24 [ORACLE] ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴, single-row subquery returns more than one row
- 2011.01.06 [ORACLE/ERWIN] ERWin 오라클 연동, Forward Engineer, Schema Generation 1
- 2010.11.04 [ORACLE] 오라클 에러 ORA-XXXXX 1
- 2010.10.11 [ORACLE/MYSQL] 인서트 자동증가, AUTO_INCREMENT, CREATE SEQUENCE 3
- 2009.07.17 오라클, 웹로직 11g 다운로드 링크 1
- 2009.07.13 [ORACLE] 오라클 계정관리 Command Log
PL/SQL Developer는 정말 좋은 툴이에요.
하지만 뷰티파이어에 단축키도 없고,
한 쿼리화면에서 일부만 실행시키려고하면,
실행 할 쿼리만 선택한 채로 F8을 눌러야 합니다.
하지만 아래처럼 설정하면,
쿼리당 세미콜론을 붙여주고 원하는 쿼리에 커서가 위치한 상태에서 (선택을 안해도됨) F8키만 누르면 쿼리하나씩만 실행이 됩니다.
메뉴 > Tools > Preferences 선택
Preferences > SQL Window > AutoSelect statement 체크 (아마도 위에서 4번째쯤)
AutoSelect statement에 체크한 모습
오라클 셀렉트 인서트
이렇게 하면 갑자기 게임이 하고싶어집니다.
담배피러가야지~
EXAMPLE1
INSERT INTO table_adr SELECT * FROM table_kaudo WHERE name='doori'
EXAMPLE2
INSERT INTO table_adr (name,sex,age) ( SELECT name, sex, age FROM ( SELECT '안두봉' name, '남자' sex FROM DUAL ), ( SELECT MAX(age) +1 age FROM table_adr ) )
- $ORACLE_HOME/bin/sqlplus "/as sysdba" 했을때 에러가 난다.
Enter password:
ERROR:
[ORACLE/LINUX] ORA-12162: TNS:net service name is incorrectly specified
오라클 계정 디렉토리안에 .bash_profile을 확인하세요.
임시로 당장쓰는법은
# export ORACLE_SID
# sqlplus "/as sysdba"
프로필을 수정하고 다시 접속 후 테스트하세요. (하단 그림 참조)
export ORACLE_SID="Oracle10g+ASM" 추가
ORA-01427: single-row subquery returns more than one row 또는
ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.
영어로된 에러메세지를 본사람은 'ㅅㅂ한줄이상 나와야된다는 메세지가 아니였어?!' 할수도,,
나도 그랬거덩!! ^.,^;;
서브쿼리의 출력은 한줄씩만 나와야만 셀렉트절에 표시될 수 있습니다.
해당서브쿼리의 WHERE절을 좀더 자세하게 수정하거나,
DISTINCT, GROUP BY로 해결 할 수 있습니다.
아래 코드는 이런 에러가 나는 상황을 연출한 예제입니다.
CODE VARCHAR2(32),
CODE2 VARCHAR2(32),
NAME VARCHAR2(32)
);
CREATE TABLE TEST2(
TITLE VARCHAR2(32),
CODE VARCHAR2(32)
);
INSERT INTO TEST1 (CODE, CODE2, NAME) VALUES ('CD1', 'CDA', '안두리');
INSERT INTO TEST1 (CODE, CODE2, NAME) VALUES ('CD1', 'CDB', '안두봉');
INSERT INTO TEST1 (CODE, CODE2, NAME) VALUES ('CD2', 'CDA', '안둘');
INSERT INTO TEST1 (CODE, CODE2, NAME) VALUES ('CD2', 'CDB', '탄야');
COMMIT;
INSERT INTO TEST2 (TITLE, CODE) VALUES ('이것은 리스트입니다.', 'CD1');
INSERT INTO TEST2 (TITLE, CODE) VALUES ('나는 사람이다', 'CD2');
INSERT INTO TEST2 (TITLE, CODE) VALUES ('오늘은 뭘먹지', 'CD2');
COMMIT;
오류나는 쿼리
TITLE,
(SELECT NAME FROM TEST1 WHERE CODE=TD2.CODE) CODE_NAME
FROM TEST2 TD2;
정상 쿼리
TITLE,
(SELECT NAME FROM TEST1 WHERE CODE2='CDA' AND CODE=TD2.CODE) CODE_NAME
FROM TEST2 TD2;
1. 데이타베이스 선택
Database > Choose Database...
4. 컨넥션 설정
오라클에 접속할 ID와 암호, 컨넥션 스트링을 입력합니다.
컨넥션 스트링은 tnsname.ora에 설정된 접속이름을 적어야합니다.
5. 포워드 엔지니어
Tools > Forward Engineer/Schema Generation...
6. 필터링
옵션을 설정하고, 적용할 테이블을 골라냅니다.
Filter: 적용할 테이블을 선택할 수 있습니다.
Preview...: 쿼리 실행문을 보여줍니다.
Generate...: 데이타베이스에 작성한 내용을 적용합니다. (실행)
7. 스키마 프리뷰
저는 디비가 어떻게 될까 무서워 프리뷰를 선택하여 나온 스크립트를 긁어서 실행시켰습니다.
이 창에선 전체선택 단축키(Ctrl+A)가 안됩니다. ㅡ.ㅡ;; 마우스 오른쪽 > Select All > Ctrl+C
데이타베이스 접속툴에 직접 가져가서 붙여넣고 실행
단일인용부는 싱글쿼테이션(')을 뜻함.
따옴표를 빼먹었다던지 잘못해서 2번이상 쓰면 나는 에러
ORA-00904: "컬럼명": 부적합한 식별자
주로 없는 컬럼을 조작하려할때 발생
ORA-00923: FROM 키워드가 필요한 위치에 없습니다.
FROM절 말고 SELECT절의 컬럼사이에 콤마(,)를 빼먹었는지 확인하세요.
ID, NAME, REG_USR, REG_DT, MOD_USR, MOD_DT
FROM TEST
ORA-01861: 리터럴이 형식 문자열과 일치하지 않음
2010/10/05 - [COMPUTING] - [ORACLE] 오라클에 DATE타입으로 INSERT / SELECT, ORA-01861: 리터럴이 형식 문자열과 일치하지 않음
ORA-12154: TNS:could not resolve the connect identifier specified
2010/10/01 - [COMPUTING] - [ORACLE] 오라클 Instant Client 설정, ORA-12154: TNS:could not resolve the connect identifier specified
MySql에는 테이블생성시 AUTO_INCREMENT만 추가해주면 자동증가가 설정되서 편합니다.
오라클은 MySql처럼 편리하진 않지만,
시퀀스를 생성해주고 그값을 조회해서 자동증가를 이용할 수 있습니다.
어쩌면 유지보수면에선 오라클같은 형식이 낳을지도...
IDX NUMBER(10),
INDEX2 NUMBER(10) NOT NULL,
CONSTRAINT PK_TESTTABLE PRIMARY KEY(IDX)
);
CREATE SEQUENCE SEQ_TESTTABLE START WITH 1 INCREMENT BY 1 MAXVALUE 99999 CYCLE NOCACHE;
INSERT INTO TESTTABLE ( IDX, INDEX2 ) VALUES ( SEQ_TESTTABLE.NEXTVAL , 100 );
MYSQL
IDX INT(11) AUTO_INCREMENT,
INDEX2 INT(11) NOT NULL,
PRIMARY KEY (IDX)
);
INSERT INTO TESTTABLE ( INDEX2 ) VALUES ( 100 );
로그인 해야 받을 수 있습니다.
oracle 11g download link
weblogic 11g download link
http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html
* OEPE = Oracle Enterprise Pack for Eclipse
CMD> sqlplus "/as sysdba"
사용자 상태 조회
SQL> SELECT USERNAME,ACCOUNT_STATUS,TO_CHAR(LOCK_DATE,'YYYY,MM,DD HH24:MI') LOCK_DATE FROM DBA_USERS;
락 해제 (LOCK & EXPIRED 라면 여전히 EXPIRED는 유지됨)
SQL> ALTER USER SCOTT ACCOUNT UNLOCK;
암호변경 (EXPIRED 풀림)
SQL> ALTER USER SCOTT IDENTIFIED BY TIGER;
권한부여
SQL> GRANT CONNECT, RESOURCE TO SCOTT;
접속
SQL> CONNECT SCOTT/TIGER;
환경변수
내컴퓨터 > 속성 > 고급 > 환경변수 > 시스템변수 > USE_SHARED_SOCKET / TRUE
톰캣에서 연결하기 위해 JDBC드라이버 복사
C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib 에
D:\oracle\product\10.2.0\db\jdbc\lib\classes12.zip 파일 복사
최근에 올라온 글
최근에 달린 댓글
|
| |||||||