2022/Oracle

· 2022/Oracle
public List getList(int page, String field, String query) throws ClassNotFoundException, SQLException{ String sql="SELECT * FROM NOTICE_VIEW WHERE"+field+" LIKE NUM BETWEEN ? AND ?"; Class.forName(driver); Connection con = DriverManager.getConnection(url,uid,pwd); PreparedStatement st = con.prepareStatement(sql); st.setString(1,"%"+query+"%"); st.setInt(2, start); st.setInt(3, end); ⁝ 해당 코드를 보면 ..
· 2022/Oracle
SELECT COUNT(ID) FROM NOTICE; ID:컬럼명
· 2022/Oracle
SQL문을 작성하다보면 길어 질때가 많다. 길어진 SQL문을 자바 코드에 넣으면 작성 내용이 매우 복잡해보인다. 따라서 VIEW를 사용함으로서 이러한 문제를 해결할 수 있다. 예를들어 이러한 SQL문이 있다. SELECT * FROM( SELECT ROWNUM NUM, N.*FROM( SELECT * FROM NOTICE ORDER BY REGDATE DESC ) N )WHERE NUM BETWEEN 2 AND 10; --------------------------------------------------------------- //VIEW만드는법 CREATE NOTICE_VIEW AS SELECT ROWNUM NUM, N.*FROM( SELECT * FROM NOTICE ORDER BY REGDATE..
· 2022/Oracle
SQL문을 작성하다보면 길어 질때가 많다. 길어진 SQL문을 자바 코드에 넣으면 작성 내용이 매우 복잡해보인다. 따라서 VIEW를 사용함으로서 이러한 문제를 해결할 수 있다. 예를들어 이러한 SQL문이 있다. SELECT * FROM( SELECT ROWNUM NUM, N.*FROM( SELECT * FROM NOTICE ORDER BY REGDATE DESC ) N )WHERE NUM BETWEEN 2 AND 10; --------------------------------------------------------------- //VIEW만드는법 CREATE NOTICE_VIEW AS SELECT ROWNUM NUM, N.*FROM( SELECT * FROM NOTICE ORDER BY REGDATE..
· 2022/Oracle
SELECT* FROM(SELECT ROWNUM NUM, NOTICE.*FROM NOTICE) WHERE NUM BETWEEN 2 AND 10; 위와 같이하면 2부터 10까지 출력할 수 있다. 위의식은 다음과 같다. SELECT ROWNUM NUM, NOTICE.*FROM NOTICE로 1부터10까지의 칼럼을 ROWNUM으로 만들되 NUM으로 별칭을 지어준다. 이후 SELECT* FROM(SELECT ROWNUM NUM, NOTICE.*FROM NOTICE) WHERE NUM BETWEEN 2 AND 10; 을 수행하는데 왜 별칭을 붙이냐고 반문 할 수 있다. 왜냐하면 ROWNUM의 기능때문에 그렇다. ROWNUM은 실행할때 1부터 1씩 증가시키는 명령어이기때문이다. 결론만 얘기하자면 왜 별칭을 사용해야..
· 2022/Oracle
SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 2 AND 10;하면 결과 값이 안나온다. 왜냐하면 ROWNUM은 컬럼이 아니기때문이다. 런타임 마다 1씩 증가시키는 로우이다 (가장 중요한 의미이다). 따라서 ROWNUM의 시스템은 1부터 출력하며 증가시키는데 WHERE절을 수행할때 TRUE이면 ROWNUM을 생성하고 1씩 증가시킨다 생각하면 된다. 예를들어 COLUMN ROWNUM(WHRE절 수행) 결과 1 1생성(BEWEEN 2 AND 10=TRUE???) 2가 아니라 FALSE 2 1생성(FALSE였기때문에 증가못함) 2가 아니라 FALSE 3 1생성(FALSE였기때문에 증가못함) 2가 아니라 FALSE 4 1생성(FALSE였기때문에 증가못함) ..
· 2022/Oracle
SELECT ROWNUM, NOTICE.* FROM NOTICE; NOTICE.컬럼(애트리뷰트) 값을 넣으면 결과값이 나온다.
· 2022/Oracle
접속하기에 앞서 Oracle DB는 기본적으로 로컬 접속이다. 따럿 원격 접솔을 위한 설정을 변경해주어야 한다. cmd를 통해 SQL plus에서 실행하면 된다. sqlplus sys as sysdba EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); 혹은 SQL plus에서 아래와 같이 로그인해도 된다. C:\app\사용자\product\21c\dbhomeXE\network\admin\sample폴더에서 tnsnames.ora와 listener.ora를 수정해야한다. tnsnames (ADDRESS= [ (COMMUNITY=) ] (PROTOCOL=tcp) (HOST=IP주소) (PORT=) ) (ADDRESS [ (COMMUNITY=) ] (PROTOCOL=tcp) (H..
키보드발
'2022/Oracle' 카테고리의 글 목록