UPDATE /*+ bypass_ujvc */

(

           SELECT A.CATEGORY_ID

           FROM DEPLOY_PRODUCT_CATEGORY A, PRODUCT_INFO B

           WHERE A.CATEGORY_ID LIKE '%DP070%'

                     AND A.PRODUCT_ID = B.PRODUCT_ID

                     AND B.STATUS LIKE '6%'

)

SET CATEGORY_ID = 'XXXXXXXX';

/*+ bypass_ujvc */ 이 부분 필수임.

다음과 같이 SELECT에서 2개의 컬럼을 가져다가 넣는 것도 가능

update /*+ bypass_ujvc */

(
   select e.PRODUCT_ID, e.PROD_DESC o_PROD_DESC,f.PROD_DESC N_PROD_DESC
   from (
     select b.CHANNEL_ID,c.PRODUCT_ID,max(d.PROD_DESC) PROD_DESC
     from PRODUCT_INFO a, PRODUCT_CATEGORY b, PRODUCT_INFO c, TBL_DP_PROD d
     where a.CONTENT_TYPE='09'
       and a.PRODUCT_ID = b.CHANNEL_ID
       and b.PRODUCT_ID = c.PRODUCT_ID
       and b.PRODUCT_ID <> b.CHANNEL_ID
       and b.CHANNEL_ID = d.PROD_ID
    group by b.CHANNEL_ID,c.PRODUCT_ID
  ) e, TBL_DP_PROD f
  where e.PRODUCT_ID = f.PROD_ID

    and f.PROD_DESC is null
)

set N_PROD_DESC = o_PROD_DESC



[Hello,Android] WebView 사용 시

프로그래밍/Android 2010. 8. 16. 15:41 Posted by galad
[7.2 뷰가 있는 웹]에서 WebView에 setWebViewClient() 를 실행하지 않으면 WebView에서 웹페이지가 열리지 않고,
그냥 브라우저가 실행된다.(Intent로 여는 것처럼)

안드로이드OS가 버젼업되면서 바뀐 것 같지는 않고, 저자의 미스인 듯?

소스는 다음과 같다.
    private void openBrowser() {
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(urlText.getText().toString());
        webView.setWebViewClient(new HelloWebViewClient());  // WebViewClient 지정
    }
   
   
    private class HelloWebViewClient extends WebViewClient {
       
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }



'프로그래밍 > Android' 카테고리의 다른 글

[Hello,Android] dip, sp  (0) 2010.08.17
[Hello,Android] 익명의 내부 클래스  (0) 2010.08.17
[Hello,Android] 기본팁  (0) 2010.06.08
[Hello,Android] Activity Lifecycle  (0) 2010.06.07
[설치] Hello, World!  (0) 2010.05.11
/**
     * byte 단위로 substring
     * @param str
     * @param beginIndex 0부터 시작
     * @param endIndex substr할 바이트 수. 2-byte문자의 경우 바이트가 부족하면 그 앞 글자까지만 자름.
     * @param bytesForDB 2-byte문자(한글 등)의 DB에서의 바이트 수. 예를들어 오라클/UTF-8이면 3바이트임
     * @return
     */
    public static String substrb(String str, int beginIndex, int endIndex, int bytesForDB) {
       
        if(str == null)
            return "";
       
        String tmp = str;
        int slen = 0, blen = 0;
        char c;
       
        if(tmp.getBytes().length > endIndex - 1) { // 0부터 카운트 되므로 endIndex - 1
           
            while(blen + 1 < endIndex - 1) {
               
                c = tmp.charAt(slen);
                blen++;
                slen++;
               
                if(c > 127)
                    blen = blen + (bytesForDB - 1); //2-byte character..
            }
           
            tmp = tmp.substring(beginIndex, slen);
        }
       
        return tmp;
    }

public void testStringUtil() {
       
        String str = "한글테스트";
        int bytesForDB = 3;
       
        System.out.println(StringUtil.substrb(str, 0, 9, bytesForDB));
        System.out.println(StringUtil.substrb(str, 0, 8, bytesForDB));
    }


[struts2] <s:if> 사용법2

프로그래밍/Framework 2010. 8. 4. 11:24 Posted by galad
<s:if test="%{contentType < 11}"><%--VOD면--%>
    <option value="2">2 일</option>
    <option value="7">7 일</option>
    <option value="30">30 일</option>
</s:if>
<s:else>
    <option value="7">7 일</option>
    <option value="30">30 일</option>
    <option value="60">60 일</option>
    <option value="90">90 일</option>
    <option value="120">120 일</option>
    <option value="365">365 일</option>
</s:else>

contentType은 String 인데도, %{} 안에서 숫자와의 비교가 가능
숫자로 변환해서 비교하는 건지, 문자열로 비교하는 건지...
저자: 캐서린 제이콥슨

중년의 저자가 겪은, 기억상실-인지장애와 관련된 체험담 및 극복기

- 단기기억 - 작동기억 - 장기기억
- 기억력 자체에는 문제가 없으나, 작동기억에 문제가 있어서 읽고 들은 것을 기억으로 전환하지 못하거나
역으로 기억에서 가져오지 못하는 경우
- 약물, 수면장애, 비만, Apo E4, 스트레스, 대형 물고기(참치 등), 알콜...
- 운동, 8시간 수면, 작은 등푸른 생선(오메가3), 하루 한잔의 술, 풍성한 두뇌창고 만들기...

저자는 자신의 기억력장애 문제를 해결하기 위해 10단계에 걸쳐서 조사/직접 치료받기 등을 거치는 노력을 기울였고,
마지막으로 80대에도 쌩쌩한 기억력을 유지하기 위한 방법으로 다음의 3가지를 제시.
1. 두뇌를 계속 사용할 것(등반을 멈추면 추락한다) -> 십자말풀이를 계속해온 사람들의 치매에 걸릴 확율이 47% 낮음
2. 익숙한 것과 결별하기 -> 지식에만 국한한 것이 아니라, 사회적으로도 사람들을 계속 만나야 함. 사회적 상호작용의 필요성.
3. 운동하기 -> 일주일에 2번 운동하면 알츠하이머병 발병확율 60% 저하

[java] 이미지 리사이즈

프로그래밍/Java 2010. 7. 23. 14:58 Posted by galad
ImageIO, BufferedImage 사용

private static BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight, boolean preserveAlpha) {
       
        int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
       
        BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType);
        Graphics2D g = scaledBI.createGraphics();
        if (preserveAlpha) {
                g.setComposite(AlphaComposite.Src);
        }
        g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
        g.dispose();
       
        return scaledBI;
    }
   
    /**
     * 이미지 리사이즈
     * @param srcFile 원본 이미지
     * @param destFile 리사이즈 이미지
     * @param width 리사이즈될 가로 길이
     * @param height 리사이즈될 세로 길이
     * @param imageType 리사이즈될 이미지 타입(PNG/JPG 등)
     * @param preserveAlpha 투명화 여부
     * @throws IOException
     */
    public static void resizeImage(File srcFile, File destFile, int width, int height, String imageType, boolean preserveAlpha) throws IOException   {
       
        BufferedImage originalImage = ImageIO.read(srcFile);
        BufferedImage resizedImage = createResizedCopy(originalImage, width, height, preserveAlpha);
        ImageIO.write(resizedImage, imageType, destFile);
       
//        System.out.println(ImageIO.getReaderFormatNames().toString());
//        System.out.println(ImageIO.getWriterFormatNames().toString());
    }


'프로그래밍 > Java' 카테고리의 다른 글

[jar] jar 압축하기/해제하기  (0) 2010.09.10
[java] byte 단위로 문자열 잘라내기  (1) 2010.08.06
[java] 소수점 자리수 / 천단위 콤마  (0) 2010.05.18
[java] Convert Milliseconds to Date  (0) 2010.03.15
[java] invoke  (0) 2010.03.09

[Hello,Android] 기본팁

프로그래밍/Android 2010. 6. 8. 11:15 Posted by galad
- 프로젝트 만들고, 빌드 패스 오류라고 컴파일 되지 않을 때 -> Project > Clean 실행
- 시스템 환경설정에 android-sdk/tools 디렉토리를 path에 넣어둘 것