您的位置:首页 > 职场人生

面试总结-1

2016-03-01 18:55 836 查看

1.编程题plsql实现

CREATE OR
REPLACE PROCEDURE GET(AIN
VARCHAR2,

                                B INVARCHAR2,
                                C OUTVARCHAR2)
IS
  N_COUNT C_CONS.CONS_ID%TYPE; 
  S_SQL  VARCHAR2(256);
BEGIN
  /*
  --create table
  CREATE TABLETAB_TEST(ID NUMBER, TYPE1 VARCHAR2(32), TYPE2 VARCHAR2(32), TIME VARCHAR2(8))
 
  -- Createsequence
  CREATE SEQUENCETEST MINVALUE 1000000000 MAXVALUE 9999999999999999999999999999 START
    WITH 1000000021INCREMENT BY 1 CACHE 20;
   */
  S_SQL :=
'INSERT INTO TAB_TESTVALUES(TEST.NEXTVAL,''' || A||
''',''' || B
||
           ''',TO_CHAR(SYSDATE,''YYYYMMDD''))';
  EXECUTE
IMMEDIATE S_SQL;
  COMMIT;
  SELECT
COUNT(1)
    INTO N_COUNT
    FROM TAB_TEST
   WHERE TYPE1
= A
     AND TYPE2
= B;
 
  C := A
|| B || TO_CHAR(SYSDATE,'YYYYMMDD')
|| LPAD(N_COUNT,6,
0);
 
END GET;

2.plsql中使用%type和%rowtype的区别

%type定义一个变量,其数据类型与已经定义的某个数据变量的类型相同,或者与数据库表的某个列的数据类型相同

使用%type的优点在于

a.可以不必知道所引用的数据库列的数据类型

b.所引用的数据库列的数据类型可以随时改变

N_COUNT C_CONS.CONS_ID%TYPE; 

%rowtype则是返回一个记录,其数据类型和数据库表的数据结构相一致,同样其优点在于

a.可以不必知道所引用的列的个数和类型

b.所引用的列的个数和类型可以改变

示例

a.tablename%rowtype

DECLARE
  T1 C_CONS%ROWTYPE;
BEGIN
  SELECT
* INTO T1 FROM C_CONSWHERE
ROWNUM =
1;
  DBMS_OUTPUT.PUT_LINE(T1.CONS_NO);
END;
b.游标

DECLARE
  CURSOR CUR
IS
    SELECT CONS_NO, CONS_IDFROM C_CONS
WHERE1
= 2;
  T1 CUR%ROWTYPE;
BEGIN
  DBMS_OUTPUT.PUT_LINE(T1.CONS_ID);
END;

3.使用过程创建测试用表(sql%rowcount)

CREATE ORREPLACE
PROCEDURE GET_BIGTABLE(L_ROWS  IN
NUMBER,
                                        OUT_CODE
OUT VARCHAR2)IS
  L_COUNT NUMBER;
BEGIN
  INSERT /*+ APPEND */
  INTO BIG_TABLE
    SELECT ROWNUM, A.*FROM ALL_OBJECTS A
WHERE ROWNUM< L_ROWS;
  L_COUNT :=
SQL%ROWCOUNT;
  COMMIT;
  WHILE
(L_COUNT < L_ROWS)LOOP
    INSERT
INTO BIG_TABLE
      SELECT ROWNUM
+ L_COUNT, A.*
        FROM ALL_OBJECTS A
       WHERE ROWNUM
<= L_ROWS - L_COUNT;
       L_COUNT:=L_COUNT+SQL%ROWCOUNT;
  END LOOP;
 
END GET_BIGTABLE;
其中sql%rowcount用户记录修改的行数,需要注意的是,其必须要放在commit之前。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: