select語句中的字段通過變量來決定是那個
下面測試
insert into tb11 (one) values ('1');//用字段名取值得到 1
SQL> set serveroutput on
SQL>
SQL> declare
2 v_tin varchar2(22);
3 V_BACK VARCHAR(22);
4 begin
5 v_tin:='ONE';
6 SELECT ONE INTO V_BACK FROM TB11 WHERE ROWNUM<2;
7 DBMS_OUTPUT.put_line(V_BACK);
8 END;
9 /1//用變量取值,只得到變量值 one
SQL> declare
2 v_tin varchar2(22);
3 V_BACK VARCHAR(22);
4 begin
5 v_tin:='ONE';
6 SELECT v_tin INTO V_BACK FROM TB11 WHERE ROWNUM<2;
7 DBMS_OUTPUT.put_line(V_BACK);
8 END;
9 /ONE結果不行
現在的需求是表有很多的字段,想通過變量的值來指定其中的 1 2個字段,求解
下面測試
insert into tb11 (one) values ('1');//用字段名取值得到 1
SQL> set serveroutput on
SQL>
SQL> declare
2 v_tin varchar2(22);
3 V_BACK VARCHAR(22);
4 begin
5 v_tin:='ONE';
6 SELECT ONE INTO V_BACK FROM TB11 WHERE ROWNUM<2;
7 DBMS_OUTPUT.put_line(V_BACK);
8 END;
9 /1//用變量取值,只得到變量值 one
SQL> declare
2 v_tin varchar2(22);
3 V_BACK VARCHAR(22);
4 begin
5 v_tin:='ONE';
6 SELECT v_tin INTO V_BACK FROM TB11 WHERE ROWNUM<2;
7 DBMS_OUTPUT.put_line(V_BACK);
8 END;
9 /ONE結果不行
現在的需求是表有很多的字段,想通過變量的值來指定其中的 1 2個字段,求解
declare
v_tin varchar2(22);
V_BACK VARCHAR(22);
begin
v_tin:='id';
execute immediate 'SELECT '|| v_tin || ' FROM a WHERE ROWNUM <2 'INTO V_BACK;
DBMS_OUTPUT.put_line(V_BACK);
END;
這種方式也考慮過 無奈要用到的sql有幾十行 考慮到換行,符號的轉換 這樣不太好