2013년 8월 5일 월요일

[Oracle] stored procedure 안에서 배열 형태로 파라미터 주고 받기


오라클 stored procedure 안에서 다른 SP를 호출하는 경우임


 PROCEDURE PROC_NAME1 (
  aSingleArray  IN   VARCHAR_ARRAY,
  oRtnCode      OUT  VARCHAR2,
  oRtnMsg       OUT  VARCHAR2
  ) AS
/* 배열을 선언한다 */
aINFArry      VARCHAR_ARRAY   := VARCHAR_ARRAY();
BEGIN

/* 배열의 크기를 선언하고 해당 수 만큼 변수를 넣는다 */
            aINFArry.EXTEND(2);
            aINFArry(1)  := 'VALUE1';
            aINFArry(2)  := 'VALUE2' ;    

/* 다른 프로시저를 호출하고 선언한 배열을 넣는다. */
   PROC_NAME2(aINFArry);
END PROC_NAME1 

2013년 7월 11일 목요일

[Oracle] Row 단위 락 확인 함수

create or replace FUNCTION FUNC_IS_ROW_LOCKED (v_rowid ROWID, table_name VARCHAR2)
   RETURN varchar2
IS
   x   NUMBER;
   PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
   EXECUTE IMMEDIATE    'Begin
                           Select 1 into :x from '
                              || table_name
                              || ' where rowid =:v_rowid for update nowait;
                         Exception
                            When Others Then
                              :x:=null;
                         End;'
   USING OUT x, v_rowid;
   -- now release the lock if we got it.
   ROLLBACK;
   IF x = 1
   THEN
      RETURN 'N';
   ELSIF x IS NULL
   THEN
      RETURN 'Y';
   END IF;
END;

그리고 아래 쿼리로 결과 확인
select FUNC_IS_ROW_LOCKED (vrowid, vtablename) from dual;

출처
http://stackoverflow.com/questions/5172911/showing-rows-that-are-locked-in-oracle

2013년 6월 26일 수요일

Sql Developer 설치 에러

SQL Developer 를 JRE 포함 버전으로 설치하게 되면 다음과 같은 문제를 자주 겪게 된다.
1. msvcr71.dll 를 찾을 수 없다고 에러 나면서 실행이 안되는 경우
해결방법 >>> 다른 컴퓨터에서 DriveName:\windows\system32 밑에서 해당 파일을 카피해서 같은 위치에 복사해 넣는다.
원인 >>> 특별한 원인이 있나 이 사람아 저 파일이 없어서 그렇지. ㅎㅎ
2. 시작 후 연결설정 시 로케일을 찾을 수 없다는 에러
해결방법 >>> 자바환경변수 설정에 아래를 추가한다.
JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8 -Duser.language=en -Duser.region=US -Duser.country=US

원인 >>> 자바를 설치 안해서 그렇다. 자바를 설치 하면 보통 패스 설정과 로케일 설정이 되는데 sql developer를 JRE 포함버전으로 설치해서 그렇다.(빼먹지 말자)

2012년 7월 24일 화요일

[Oracle] Sql developer 3.1 설치 후 에러

++An error was encountered performing the requested operation:++

++ORA-00604: error occurred at recursive SQL level 1++
++ORA-01882: timezone region not found++
++00604. 00000 - "error occurred at recursive SQL level %s"++
++*Cause: An error occurred while processing a recursive SQL statement++
++(a statement applying to internal dictionary tables).++
++*Action: If the situation described in the next error on the stack++
++can be corrected, do so; otherwise contact Oracle Support.++
++Vendor code 604++


JAVA VM 옵션에서 시간대 설정이 안되어있기 때문임
아래 파일에 아래 옵션을 추가해주면 된다.


file;
D:\oracle\sqldeveloper\ver3.1.07.42\sqldeveloper\bin\sqldeveloper.conf

java VM option;
AddVMOption -Duser.timezone="+07:00"

2012년 7월 7일 토요일

[Android] 안드로이드 앱에서 Activity label 제거

1. AndroidMenifest.xml 을 연다
2. Activity 에 다음 줄을 추가한다.

android:theme="@android:style/Theme.NoTitleBar"



<activity android:name=".Activity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

[Git] Git 활용한 Android project 관리 ( Git + Eclipse + Android + Google Code)

여기서 정리해보려고 하는 것은
  • 1. 안드로이드 프로젝트
  • 2. 이클립스에서 개발
  • 3. 구글 코드프로젝트를 사용
  • 4. 버전관리 시스템으로는 Git

전체적인 순서는
  • A1. 구글 코드에서 프로젝트 생성
  • A2. 이클립스에서 EGit 플러그인 설치
  • A3. Clone Git repository
  • A4. 기존의 안드로이드 프로젝트를 Git Repository로 커밋
  • A5. Push 로 전체 소스 업데이트


A1. 구글코드에서 프로젝트 생성
먼저 code.google.com 에서 android 프로젝트를 생성한다.
생성 시에는 버전관리 시스템을 Git로 선택한다.
그러면 다음과 같은 Git Repository 정보를 얻을 수 있다.

git clone https://[project name]@code.google.com/p/[project name]/ 


A2. 이클립스에서 EGit 플러그인 설치

A3. Clone Git repository

그림1. code.google.com 에서 받은 repository URI 정보를 이클립스에 입력한다.
그림2. 브랜치를 선택한다.


A4. 기존의 안드로이드 프로젝트를 Git Repository로 커밋
커밋하기 위해 기존의 프로젝트를 share project 한다.

 그림3. 기존의 안드로이드 프로젝트를 share project 한다.

그림4. 로컬저장소를 지정한다.
A5. Push 로 전체 소스 업데이트

그림5. 프로젝트를 커밋한다.

그림6. 프로젝트를 Push 해서 소스코드를 업데이트한다.




2012년 7월 4일 수요일

[jQuery] attr() 과 prop() 차이점



Attribute/Property.attr().prop()
accesskey
align
async
autofocus
checked
class
contenteditable
defaultValue
draggable
href
id
label
location *
multiple
nodeName
nodeType
readOnly
rel
selected
selectedIndex
src
style
tabindex
tagName
title
type
width **


http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/ 에서 퍼옴