Oracle PL/SQL Tutorial/PL SQL Data Types/CHAR Type Convert

Материал из SQL эксперт
Перейти к: навигация, поиск

Converting a Character Formatted as Currency to an Integer Value

SQL>
SQL> set serveroutput on
SQL> set echo on
SQL>
SQL>
SQL> DECLARE
  2       v_Convert_Number VARCHAR2(20) := "$119,252.75";
  3       v_Hold_Number NUMBER ;
  4  BEGIN
  5       v_Hold_Number := TO_Number(v_Convert_Number,"$999,999,999.99");
  6       DBMS_OUTPUT.PUT_LINE("The converted number is: " || v_Hold_Number);
  7       DBMS_OUTPUT.PUT_LINE("Your commission at 6% is: " ||
  8                            (v_Hold_Number*.06));
  9  END;
 10  /
The converted number is: 119252.75
Your commission at 6% is: 7155.165
PL/SQL procedure successfully completed.


Converting a Character to an Integer Value

SQL>
SQL>
SQL> set serveroutput on
SQL> set echo on
SQL>
SQL> DECLARE
  2       v_Convert_Number VARCHAR2(20) := "1999";
  3       v_Hold_Number NUMBER ;
  4  BEGIN
  5       v_Hold_Number := TO_Number(v_Convert_Number,"9999");
  6       DBMS_OUTPUT.PUT_LINE("The converted number is: " || v_Hold_Number);
  7       DBMS_OUTPUT.PUT_LINE("The converted number plus 10 is: " ||
  8                            (v_Hold_Number+10));
  9  END;
 10  /
The converted number is: 1999
The converted number plus 10 is: 2009
PL/SQL procedure successfully completed.


Converting VARCHAR2 Percentage Data to a Decimal Equivalent

SQL>
SQL> set serveroutput on
SQL> set echo on
SQL>
SQL>
SQL> DECLARE
  2       v_Convert_Number VARCHAR2(20) := "33.33";
  3       v_Hold_Number NUMBER ;
  4  BEGIN
  5       v_Hold_Number := TO_Number(v_Convert_Number,"999.999999");
  6       DBMS_OUTPUT.PUT_LINE("The converted number is: " || v_Hold_Number);
  7       DBMS_OUTPUT.PUT_LINE("Your decimal equivalent is: " ||
  8                            (v_Hold_Number/100));
  9  END;
 10  /
The converted number is: 33.33
Your decimal equivalent is: .3333
PL/SQL procedure successfully completed.
SQL>


Convert Number to VARCHAR implicitly

SQL>
SQL> SET ECHO ON
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2    d1    DATE;
  3    cd1   VARCHAR2(10);
  4    cd2   VARCHAR2(10);
  5    n1    NUMBER;
  6    cn1   VARCHAR2(10);
  7    cn2   VARCHAR2(10);
  8  BEGIN
  9    cn1 := "995";
 10    n1 := cn1 + .99 ;
 11    cn2 := n1;
 12
 13    DBMS_OUTPUT.PUT_LINE("CN1 = " || cn1);
 14    DBMS_OUTPUT.PUT_LINE("N2 = " || n1);
 15    DBMS_OUTPUT.PUT_LINE("CN2 = " || cn2);
 16  END;
 17  /
CN1 = 995
N2 = 995.99
CN2 = 995.99
PL/SQL procedure successfully completed.
SQL>
SQL>


Convert VARCHAR to Number implicitly

SQL> SET ECHO ON
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2    d1    DATE;
  3    cd1   VARCHAR2(10);
  4    cd2   VARCHAR2(10);
  5    n1    NUMBER;
  6    cn1   VARCHAR2(10);
  7    cn2   VARCHAR2(10);
  8  BEGIN
  9    cn1 := "995";
 10    n1 := cn1 + .99 ;
 11
 12    DBMS_OUTPUT.PUT_LINE("CN1 = " || cn1);
 13    DBMS_OUTPUT.PUT_LINE("N2 = " || n1);
 14  END;
 15  /
CN1 = 995
N2 = 995.99
PL/SQL procedure successfully completed.