'어장 프로그래밍'에 해당되는 글 35건

서버를 관리하면서 매일매일 dump 파일을 생성한다.

우리 회사의 경우에는 새벽에 사용자가 없기에 새벽 2시~6시 사이에 덤프파일을 만드는 편이다.

이 덤프파일을 이용해서 import 방법을 해 보고자 한다.

* Export 방법은 차후에.


이 방법은 cmd 명령프롬프트에서 동작한다.

사실 어려운 방법은 아니다.


시작 - 실행 - cmd 입력


이 방법은 전체 데이터베이스를 import 하는 방법이다.

C:\> imp userid=유저명/비밀번호 file='dump파일 경로 입력' full=y


테이블/트리거 등등  다른 방식의 import는 차후에 설명...

블로그 이미지

김생선

세상의 모든것을 어장관리

user를 생성하는 방법 중 한가지, SQL Plus에서의 방법이다.

sql plus에서 system 권한으로 접속한다. 회사에서 세팅하는 user는 대부분 DBA 권한을 주기 때문이다.

그리고 아래의 커맨드를 날린다.


1. USER 생성

SQL> CREATE USER 사용자명 IDENTIFIED BY 비밀번호;


대소문자를 구분하지 않으나, 사용자명과 비밀번호에서는 대소문자를 가리는 것 같으니(사실 확인은 안해봤다) 유의하자.

USER 생성에 따라 여러 옵션이 존재하는 것 같은데 그것에 대해서는 추후 설명...


잠시 기다리면 완료메시지가 출력된다. 그럼 접속을 한 번 해 보자.



2. 생성한 USER로 접속

SQL> CONN 사용자명/비밀번호


연결방식에 따라 ORACLE 에러가 날 수도 있고, 올바르게 접속될 수도 있다.

에러가 난다면 아마도 다음과 같은 에러이리라 생각되어진다.


ORA-12560 : TNS : 프로토콜 어댑터 오류


회사에서는 ASP서버를 이용하기 때문에 비밀번호 뒤에 TNS NAME을 적어주어야 접속이 가능해진다. 로컬에서는 물론 적어주지 않아도 된다. 내가 일하는 곳은 원격지이기 때문에 적어주어야 한다.

따라서, 다음과 같은 명령어를 입력해준다.


SQL> CONN 사용자명/비밀번호@ASP이름


위와 같이 올바르게 입력하였다면 다음과 같은 메시지가 출력된다.


"연결되었습니다."


혹시 모르니 다시 확인해본다.


SQL> SHOW USER


그럼 현재 접속된 USER가 보인다. 이제 작업하면 된다.


아, 하나 더. DBA 권한 주는 법.



3. USER에게 DBA 권한 주는 법

SQL> GRANT DBA TO 유저명;


그럼 현재 접속된 유저에게 DBA 권한이 주어진다. 끝.

블로그 이미지

김생선

세상의 모든것을 어장관리

오라클 테이블 데이터 조회 및 삭제, 수정 관련된 쿼리를 정리해본다.


데이터 조회

SELECT * FROM 테이블명;



데이터 삭제

DROP TABLE 테이블명;

- 위의 방법으로 하면 테이블 자체가 삭제


DELETE FROM 테이블명;

- 테이블 구조는 남아있되 데이터만 삭제



데이터 수정

update 테이블명 set B = 'KIMFISH' where A = 1;

- 테이블명이라는 테이블 중, B 컬럼의 내용을 KIMFISH로 변경한다, 조건은 A 컬럼의 내용 중 1 이라 되어있는 항목.

- 즉, B열의 내용을 모두 KIMFISH로 변경하고 그에 대한 조건은 A 열 중에서 1이라 되어있는 항목만 걸러내서 수정한다는 이야기이다.

- 위의 쿼리를 실행하면 B 열 1행의 ABCD가 KIMFISH로 변경이 된다.

- 부득이하게 이미지는 엑셀로 작업함 ^^;




DROP된 데이터 복구

DROP을 하게 되면 테이블 자체가 삭제되어지기 때문에 나같은 초짜가 테이블을 복구하고 나발이고 하긴 매우 힘들다.

그럴 땐 다음과 같은 명령어를 입력한다.


FLASHBACK TABLE 테이블명 TO BEFORE DROP;


DROP을 여러번 했다면 RECYCLE BIN 에서 최근 DROP 목록을 삭제하고 실행해야 한다.

블로그 이미지

김생선

세상의 모든것을 어장관리

해당 내용은 개인적인 기록으로 질문을 일체 받지 않습니다.
알아두시기 바랍니다.

일전에 하나의 액티비티에서 여러개의 아이템을 가져오는 것에 대해 고민 한 적이 있었다.
요사이 바쁜 일이 많기에 좀처럼 코딩을 할 수 없었으나 시간이 나서 잠깐 해 보았다.


listview 에서 해당 아이템으로 intent를 보내는 과정.

  소스1
  1.     protected void onListItemClick(ListView l, View v, int position, long id) {
  2.     super.onListItemClick(l, v, position, id);
  3.    
  4.       if(position == 0){       
  5.         Intent intent = new Intent(this, page_one.class);
  6.         intent.putExtra("abc""kimfish");
  7.         startActivity(intent);
  8.       } 
  9.       else if(position == 1){
  10.             Intent intent = new Intent(this, page_one.class);
  11.         intent.putExtra("abc""bbbb");
  12.             startActivity(intent);
  13.       }
 

소스 1에서 리스트의 구현과 함께 position을 통하여 두 개의 아이템에 각각의 메시지를 전달해준다.
Intent intent = new Intent(this, page_one.class) 에서는 intent로의 이동을 의미한다고 볼 수 있는데, this(현재 클래스.this라 적어도 된다.)에서 page_one.class로 intent 값을 보낸다고 보면 된다. 
 

 intent.putExtra("abc""kimfish");를 보자면 abc란 값에 kimfish를 넣어서 putExtra로 보낸다.
그럼 다음 소스를 보자.


 소스2
  1. Intent intent = getIntent();
  2.          String str = intent.getStringExtra("abc");
  3.          TextView tv = new TextView(this);     //TextView 생성
  4.          tv.setText(str);                      //출력내용 지정
  5.          Log.i("abc"""+tv);
  6.          setContentView(tv);                   //Activity에 나타냄
 
소스1에서 보낸 intent를 getIntent가 받는다.
또한 소스1에서 abc에 kimfish를 넣어 보낸 값을 getStringExtra가 받게 된다.
이 abc에는 kimfish가 저장되어져 있으며 setText(str)값을 통하여 str를 출력, kimfish가 화면에 보이게 된다.

 
위의 내용은 리스트에서 
if(position == 0) 을 터치한 것에 대한 값 출력을 설명하였으나 else if(position == 1) 등을 터치했을 때에도 소스2에는 별다른 코드의 추가 없이 구현이 잘 된다.

참고로 Log.i("abc"""+tv); 는 abc가 잘 받아지는지에 대한 로그캣 출력값이다. 신경 안써도 된다.


이전에 해결한 문제점
2011/03/12 - [어장 안드로이드 프로그래밍] - listview
1. 이 포스트에서 다루듯이 해결.
2. 관련 내용이 아니기에 생략.
3. 소스1에서 내용을 보내기 때문에 for로 position값을 정해줄 수는 없다.
애초에 내가 생각한 것은 소스1에서 받은 position 값이 소스2 에서 받아지면서 이 position(예로 position == 0이면 소스2 에서 0을 받는 식) 값에 따라 해당 xml을 출력하는 방식이었다.
지금 생각해보면 왜 그딴 생각을 했는지 이해가 안된다.


또다시 생긴 문제점
1.
해당 내용을 보낼 때 소스2에서 xml값을 출력할 수는 없을까?
불러올 수 없다면 소스 1에서 많은 내용을 입력하고 많은 내용을 불러와야 할 뿐인가?  

2.
문제점은 아니지만 글 중간 중간에 사용자 키보드 입력을 받는 구간이 있을 것이다. 이제 이것을 구현하면 된다. 그런데 생각해보니 여러모로 1의 문제처럼 xml을 받는 것 보다는 직접 출력 하는 것이 더 좋지 않을까 한다.
이것에 대해서는 나중에 좀 더 생각해봐야 할 것 같다. 

'어장 프로그래밍 > 어장 안드로이드' 카테고리의 다른 글

공지사항 dialog  (2) 2012.09.26
[Android] addview를 사용할 때의 위치설정  (0) 2012.08.08
Thread로 ProgressDialog 사용하기  (0) 2012.08.03
listview와 intent  (0) 2011.03.16
listview  (0) 2011.03.12
블로그 이미지

김생선

세상의 모든것을 어장관리

해당 내용은 개인적인 기록으로 질문을 일체 받지 않습니다.
알아두시기 바랍니다.

리스트뷰는 리스트를 보여준다.
리스트뷰에 관련된 이벤트들은 종류가 꽤 많다.
listiview
- onListItemClick
- onClickListener
등등

아래는 예시이다.
  1     private static final String[] GENRES = new String[] {
  2         "만만이", "kimfish"
  3     };
  4     
  5     protected void onListItemClick(ListView l, View v, int position, long id) {
  6     	  super.onListItemClick(l, v, position, id);
  7     	  if(position == 0){
  8     		  Intent intent = new Intent(list.this, mysecretnote.class);
  9     		  startActivity(intent);
 10     	  }
 11     	  else if(position == 1){
 12     		  Intent intent = new Intent(list.this, android1.class);
 13     		  startActivity(intent);
 14     	  }
 15     	  
 16     	  
 17 }
onListItemClick은 네 개의 피라미터를 가진다.
ListView I, View v, int positiob, long id 이렇게 네 개이다.
그 중, position을 이용하여 분기를 주면 인텐트로 하여금 해당 액티비티를 호출한다.

리스트는 여기에서 두 개로 보여진다.

만만이를 터치하게 되면 mysecretnote.class가 호출되고
kimfish를 터치하게 되면 kimfish.class가 호출된다.


앞으로 구현해아 할 점

1.
activity를 하나로 고정하고 리스트에서 해당 값을 불러올 수 있을까?
ex.
1~10 아이템 존재, kimfish.class 한 개 존재
1을 터치하면 kimfish 호출, 1에 관련된 내용 출력
.
.
.
10을 터치하면 kimfish 호출, 10에 관련된 내용 출력

2.
학교 열람실 정보를 출력하는 과정에서 해당 한글이 모조리 깨지는 것을 보아 관련 인코딩 문제가 있는 듯 하다.
파싱을 확실히 배워야 하는가?

3.
listview에서 onListItemClick을 호출할 때 해당 포지션값을 for로 입력할 수는 없는걸까?

'어장 프로그래밍 > 어장 안드로이드' 카테고리의 다른 글

공지사항 dialog  (2) 2012.09.26
[Android] addview를 사용할 때의 위치설정  (0) 2012.08.08
Thread로 ProgressDialog 사용하기  (0) 2012.08.03
listview와 intent  (0) 2011.03.16
listview  (0) 2011.03.12
블로그 이미지

김생선

세상의 모든것을 어장관리

티스토리 툴바