반응형

rpm -e --repackage 형태로 사용하는 방법은 centos에는 사용될수 없음

 

rpmrebuild 패키지를 yum or dnf 로 설치

#> yum install rpmrebuild

 

root@server1:[/tmp]# rpm -qa | grep java-1.8
java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64
java-1.8.0-openjdk-devel-1.8.0.222.b10-0.el7_6.x86_64
java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64

 

root@server1:[/tmp]# rpmrebuild java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64

 

result : /root/rpmbuild/RPMS/x86_64/java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64.rpm

반응형

'OS > Linux' 카테고리의 다른 글

Centos 모니터링 쉘 모음  (0) 2019.12.05
vimrc 공통 환경 설정  (1) 2019.12.03
Centos 7 SAMBA 설정  (1) 2019.09.05
vi 색상 표기  (0) 2019.05.08
CENTOS 7에 XRDP 설치하기  (0) 2017.08.26
반응형

오늘 불현듯...

User Define Cursor 에 대한 부분이 궁금해 졌다...

자바에서 오라클 패키지 호출하여 커서값을 반환하여 자유 스럽게 사용했는데

그 커서 값을 오라클에서 받아서 해볼까 하는...

사실 cursor is 구문이라던지 직접 사용했지

그동안 cursor 반환은 무관심 했었다..

방법은...

즉,  커서 out 값에  l_cursor에 받아와서

3개의 select 한 값을 return 하는데... 각 값들의 속성을 l_ename, l_empno, l_deptno 로 fetch 하여 받아가지고 옴...

참고용

SET SERVEROUTPUT ON SIZE 1000000
DECLARE
  TYPE REF_CUR IS REF CURSOR;
  l_cursor REF_CUR;
  l_ename   emp.ename%TYPE;
  l_empno   emp.empno%TYPE;
  l_deptno  emp.deptno%TYPE;
BEGIN
  get_emp_rs (p_deptno    => 30,
              p_recordset => l_cursor);
            
  LOOP 
    FETCH l_cursor
    INTO  l_ename, l_empno, l_deptno;
    EXIT WHEN v_cursor%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(l_ename || ' | ' || l_empno || ' | ' || l_deptno);
  END LOOP;
  CLOSE l_cursor;
END;
/


출처 :  http://www.oracle-base.com/articles/misc/UsingRefCursorsToReturnRecordsets.php 




Using Ref Cursors To Return Recordsets

Since Oracle 7.3 the REF CURSOR type has been available to allow recordsets to be returned from stored procedures and functions. Oracle 9i introduced the predefined SYS_REFCURSOR type, meaning we no longer have to define our own REF CURSOR types. The example below uses a ref cursor to return a subset of the records in the EMP table.

The following procedure opens a query using a SYS_REFCURSOR output parameter. Notice the cursor is not closed in the procedure. It is up to the calling code to manage the cursor once it has been opened.

CREATE OR REPLACE
PROCEDURE get_emp_rs (p_deptno    IN  emp.deptno%TYPE,
                      p_recordset OUT SYS_REFCURSOR) AS 
BEGIN 
  OPEN p_recordset FOR
    SELECT ename,
           empno,
           deptno
    FROM   emp
    WHERE  deptno = p_deptno
    ORDER BY ename;
END GetEmpRS;
/

The resulting cursor can be referenced from PL/SQL as follows.

SET SERVEROUTPUT ON SIZE 1000000
DECLARE
  l_cursor  SYS_REFCURSOR;
  l_ename   emp.ename%TYPE;
  l_empno   emp.empno%TYPE;
  l_deptno  emp.deptno%TYPE;
BEGIN
  get_emp_rs (p_deptno    => 30,
              p_recordset => l_cursor);
            
  LOOP 
    FETCH l_cursor
    INTO  l_ename, l_empno, l_deptno;
    EXIT WHEN v_cursor%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(l_ename || ' | ' || l_empno || ' | ' || l_deptno);
  END LOOP;
  CLOSE l_cursor;
END;
/

The cursor can be used as an ADO Recordset.

Dim conn, cmd, rs

Set conn = Server.CreateObject("adodb.connection")
conn.Open "DSN=TSH1;UID=scott;PWD=tiger"

Set cmd = Server.CreateObject ("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "get_emp_rs"
cmd.CommandType = 4 'adCmdStoredProc

Dim param1
Set param1 = cmd.CreateParameter ("deptno", adInteger, adParamInput)
cmd.Parameters.Append param1
param1.Value = 30

Set rs = cmd.Execute

Do Until rs.BOF Or rs.EOF
  -- Do something
  rs.MoveNext
Loop

rs.Close
conn.Close
Set rs     = nothing
Set param1 = nothing
Set cmd    = nothing
Set conn   = nothing

The cursor can also be referenced as a Java ResultSet.

import java.sql.*;
import oracle.jdbc.*;

public class TestResultSet  {
  public TestResultSet() {
    try {
      DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
      Connection conn = DriverManager.getConnection("jdbc:oracle:oci:@w2k1", "scott", "tiger");
      CallableStatement stmt = conn.prepareCall("BEGIN get_emp_rs(?, ?); END;");
      stmt.setInt(1, 30); // DEPTNO
      stmt.registerOutParameter(2, OracleTypes.CURSOR); //REF CURSOR
      stmt.execute();
      ResultSet rs = ((OracleCallableStatement)stmt).getCursor(2);
      while (rs.next()) {
        System.out.println(rs.getString("ename") + ":" + rs.getString("empno") + ":" + rs.getString("deptno")); 
      }
      rs.close();
      rs = null;
      stmt.close();
      stmt = null;
      conn.close();
      conn = null;
    }
    catch (SQLException e) {
      System.out.println(e.getLocalizedMessage());
    }
  }

  public static void main (String[] args) {
    new TestResultSet();
  }
}
If you are using a version of Oracle before 9i, then create the following package and replace any references to SYS_REFCURSOR with TYPES.cursor_type.
CREATE OR REPLACE PACKAGE types AS 
  TYPE cursor_type IS REF CURSOR;
END Types; 
/
Hope this helps. Regards Tim... 
반응형

'Database > ORACLE' 카테고리의 다른 글

Automatic SQL Tuning in Oracle Database 10g  (0) 2012.07.20
10G OCP 자격증 관련  (2) 2012.07.08
일정 시간 별로 쿼리 정보 조회  (0) 2012.02.20
오라클 병렬 인덱스 조회 및 수정하기  (0) 2012.01.27
AWR Report 정리본  (0) 2011.09.28
반응형


11버전 설치했는데...

아래와 같이 설치후

부트로더 화면에서 e 키를 눌러 직접 수정해 줘야 했다.. -_-

제길슨...

root 패스워드 변경

sudo passwd root

일케 함..-_-

패키지 설치는...

http://packages.ubuntu.com 

검색하여 설치가능함 ~

출처 :  http://blog.naver.com/PostView.nhn?blogId=hseok74&logNo=120108619514&viewDate=&currentPage=1&listtype=0 


삼성 매직스테이션 (DM-V75)에 우분투 설치하기

 

삼성 매직스테이션에 리눅스 설치만 하면 부팅이 되다가 입력이 모두 홀드되어 아무것도 할수 없는 상태가 된다.

이것을 해결하기 위해서 다음과 같은 작업을 진행했고, 아래 링크를 참조했다.

 

참조사이트 : http://onthebeginningway.blogspot.com/2009/09/ubuntu-install-on-samsung-desktopdm-v75.html

 

1. 9.10 우분투 CD를 삽입하고 전원을 켠다.

2. "하드디스크 변경없이 우분투 사용" 에 선택 바를 놓고, F6, F8키를 누른다.

3. 부트 옵션 맨 앞쪽에 다음과 같이 추가하고 엔터를 친다.

   'acpi=off noapic pnpbios=off irqpoll'
4. 우분트가 뜨고, 설치를 시작

5. 설치가 끝나면 "계속사용" or "리부팅" 에서 "계속 사용"을 선택한다.

6. 우분트가 설치된 "/" 파티션을 찾아서 마운트 한다.

7. 'sudo vi <ROOT_PARTITION>/boot/grub/grub.cfg'를 하고 아래와 같이 3번 사항을 추가 한다.

<중략>

 ### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        set quiet=1
        insmod ext2
        set root=(hd0,5)
        search --no-floppy --fs-uuid --set 8fb53ee5-0550-436f-afca-842b73d31ab4
        linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=8fb53ee5-0550-436f-afca-842b73d31ab4 ro acpi=off noapic pnpbios=off irqpoll  quiet splash
        initrd  /boot/initrd.img-2.6.31-14-generic
}
menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
        recordfail=1
<중략>

8. 루트 파티션 언마운트 후에 재부팅한다.

9. 재 부팅후에 잘 사용한다.(끝)

 

위 4개의 옵션이 모두 필요한지 모르겠다.

몇시간을 삽질한 것인지... 쩝

반응형

'OS > Linux' 카테고리의 다른 글

CENTOS 7에 XRDP 설치하기  (0) 2017.08.26
리눅스 백업 및 복구  (0) 2013.01.25
rkhunter (리눅스 침입 탐지 사용하기)  (1) 2010.10.14
ps auxc 와 ps aux 결과 비교하기  (0) 2010.01.21
AWK & SED chunk_1  (0) 2010.01.21
반응형


오라클을 이관 후에는 컴파일을 일괄적으로 해야할 때가 존재한다...

1. 일괄 컴파일

 

Set heading off      
Set feedback off      
Set pages 1000      
 
 spool obj.sql
 select 'set termout on' from dual;
 select 'set echo on' from dual;      
      
 select 'alter trigger '||owner||'.'||object_name||' compile;'
 from dba_objects
 where status <> 'VALID'
 and object_type='TRIGGER';
     
 select 'alter package '||owner||'.'||object_name||' compile;'      
 from dba_objects      
 where status <> 'VALID'       
 and object_type='PACKAGE';      

 select 'alter package '||owner||'.'||object_name||' compile body;'     
 from dba_objects      
 where status <> 'VALID'       
 and object_type='PACKAGE BODY';

 select 'alter procedure '||owner||'.'||object_name||' compile;'       
 from dba_objects      
 where status <> 'VALID'       
 and object_type='PROCEDURE';      

 select 'alter function '||owner||'.'||object_name||' compile;'
 from dba_objects      
 where status <> 'VALID'
 and object_type='FUNCTION';

 select 'alter view '||owner||'.'||object_name||' compile;'       
 from dba_objects      
 where status <> 'VALID'       
 and object_type='VIEW';       
 
 spool off

[출처] [Oracle] 데이타베이스 한꺼번에 Compile하기|작성자 미친예언자




2. 일괄 컴파일

 host rm -rf comp1.sql comp2.sql
set pages 300
select count(1) as INVALID_OBJECT_COUNT from dba_objects where status !='VALID';
set pages 0
set line 1000
set echo off
set feedback off
set space 0
col compile for a1000
select systimestamp as start_time from dual;
spool comp1.sql
select 'prompt '||object_type||' '||object_name||' compiling'||'
prompt '||'
alter '||object_type||' '||owner||'.'||object_name||' compile;' as compile
from dba_objects
where status !='VALID'
and object_type !='PACKAGE BODY';
spool off
host ls -al comp1.sql
host echo "select systimestamp from dual;" >> comp1.sql
start comp1.sql
show error
spool comp2.sql
select 'prompt '||object_type||' '||object_name||' compiling'||'
prompt '||'
alter package '||owner||'.'||object_name||' compile body;' as compile
from dba_objects
where status !='VALID'
and object_type ='PACKAGE BODY';
spool off
host ls -al comp2.sql
host echo "select systimestamp from dual;" >> comp2.sql
start comp2.sql
show error
set echo on
set feedback on
set pages 3000
set space 1
col owner for a20
col object_name for a28
col object_type for a20
col status for a16
select owner,object_name,object_type,status from dba_objects
where status !='VALID';
select count(1) INVALID_OBJECT_COUNT from dba_objects where status !='VALID';
select systimestamp as end_time from dual;


3. 일괄 컴파일

 1. SQL> @?/rdbms/admin/utlrp.sql

2. utlrp를 parallel하게...
execute utl_recomp.recomp_parallel(4);

3. 만약 ERP라면...위의 두개로 해결이 안될때에는...
cd $AD_TOP/sql/adcompsc를 사용합니다.
adcompsc <== 이게 산타님 말씀하신것 처럼 alter문장을 생성하여 실행합니다.
참고하세요^^

반응형
반응형


모바일 프로그램중 닷넷 프레임 워크 3.5를 요구하는 프로그램들이 있다....

지하철 도착시간 알리미  이 프로그램을 설치하고

실행도중 오류가 발생하였다.

원인은 닷넷 프레임 워크 3.5를 안깔아서 그랬다...


설치 방법

1. 아래의 주소에서 재배포 가능 NetCFSetupv35.msi 파일을 다운 받는다.

모바일 .NET Compact Framework 3.5 재배포 가능 패키지 다운로드 주소

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=e3821449-3c6b-42f1-9fd9-0041345b3385

2. 컴퓨터와 옴니아2 기종을 연결한다.
    이때 Active Sync가 가동된다.

3. 다운받은 .msi 파일을 컴퓨터상에서 실행한다.

4. 연결된 옴니아2를 보면 설치화면이 나오고 바로 설치한다.

끝 !
반응형
반응형

       CREATE TABLE SOURCE_HIST                     -- Create history table
          AS SELECT SYSDATE CHANGE_DATE, USER_SOURCE.*
             FROM   USER_SOURCE WHERE 1=2;

        CREATE OR REPLACE TRIGGER change_hist        -- Store code in hist table
               AFTER CREATE ON SCOTT.SCHEMA          -- Change SCOTT to your schema name
        DECLARE
        BEGIN
          if DICTIONARY_OBJ_TYPE in ('PROCEDURE', 'FUNCTION',
                          'PACKAGE', 'PACKAGE BODY', 'TYPE') then
             -- Store old code in SOURCE_HIST table
             INSERT INTO SOURCE_HIST
                SELECT sysdate, user_source.* FROM USER_SOURCE
                WHERE  TYPE = DICTIONARY_OBJ_TYPE
                  AND  NAME = DICTIONARY_OBJ_NAME;
          end if;
        EXCEPTION
          WHEN OTHERS THEN
               raise_application_error(-20000, SQLERRM);
        END;
        /
        show errors

[출처] pl/sql|작성자 신머루

반응형

'Database > ORACLE' 카테고리의 다른 글

SQL LOADER 사용예  (0) 2009.03.08
PL/SQL 에서 DDL 문장 호출하기  (0) 2009.03.08
오라클 탭 출력하기  (0) 2009.03.08
오라클 패키지 백업 스크립트  (0) 2009.03.08
오라클 패키지 백업 프로그램  (2) 2009.03.08
반응형

물론 난 백업 스크립트를 사용해서 백업하지만

윈도우 상에서 일괄적으로 백업 받을때

(낱개로는 TOAD등 툴을 통해 받을수 있지만...)

사용하면 좋은 프로그램...


프로시져백업.zip


반응형
반응형

### oracle run package (파일명 test.sh)
오라클 계정에 profile 파일의 기본 환경 path 변수들 복사

 

### oracle

sqlplus -SILENT 아이디/패스워드 <<-EOF
 WHENEVER SQLERROR EXIT 1
  WHENEVER OSERROR EXIT 1
   SET ECHO ON
   EXECUTE 호출패키지명();

   EXIT 0
   EOF

   EXITCODE=$?
   export EXITCODE

   if [ "$EXITCODE" -ne 0 ]
   then
     echo "ERROR: SQL*Plus exit code: $EXITCODE"
     echo ""
     echo "**** PROCEDURE RUN ABORTED at `date` !!! ****"
   fi
### end

 

클론 등록 방법 (클론은 root로 등록)

매일 아침 6시에 실행한다면

 

0 6 * * * su - oracle -c /home/test.sh

반응형

+ Recent posts