8
A
回答
14
的Dump功能:
返回包含以字節爲單位的數據類型代碼,長度VARCHAR2值,並且expr的內部表示。返回的結果總是在數據庫字符集中。對於每個代碼對應的數據類型,請參見表2-1。
4
如果你書寫的查詢,您可以創建基於它的一個視圖,然後查詢數據字典,看看有什麼列的數據類型是:
create view vw_test as
select 1 an_integer,
'abc' a_string,
sysdate a_date
from dual;
desc vw_test;
Name Null Type
----------- -------- ------------------
AN_INTEGER NUMBER
A_STRING CHAR(3)
A_DATE DATE
我猜,但是,您需要某種在運行時確定這種情況的通用方法。由於涉及DDL,此方法不會非常有用。在這種情況下,DBMS_SQL可以幫助你:
DECLARE
c NUMBER;
d NUMBER;
col_cnt INTEGER;
f BOOLEAN;
rec_tab DBMS_SQL.DESC_TAB;
col_num NUMBER;
PROCEDURE print_rec(rec in DBMS_SQL.DESC_REC) IS
BEGIN
DBMS_OUTPUT.NEW_LINE;
DBMS_OUTPUT.PUT_LINE('col_type = '
|| rec.col_type);
DBMS_OUTPUT.PUT_LINE('col_maxlen = '
|| rec.col_max_len);
DBMS_OUTPUT.PUT_LINE('col_name = '
|| rec.col_name);
DBMS_OUTPUT.PUT_LINE('col_name_len = '
|| rec.col_name_len);
DBMS_OUTPUT.PUT_LINE('col_schema_name = '
|| rec.col_schema_name);
DBMS_OUTPUT.PUT_LINE('col_schema_name_len = '
|| rec.col_schema_name_len);
DBMS_OUTPUT.PUT_LINE('col_precision = '
|| rec.col_precision);
DBMS_OUTPUT.PUT_LINE('col_scale = '
|| rec.col_scale);
DBMS_OUTPUT.PUT('col_null_ok = ');
IF (rec.col_null_ok) THEN
DBMS_OUTPUT.PUT_LINE('true');
ELSE
DBMS_OUTPUT.PUT_LINE('false');
END IF;
END;
BEGIN
c := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c, 'SELECT * FROM scott.bonus', DBMS_SQL.NATIVE);
d := DBMS_SQL.EXECUTE(c);
DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
/*
* Following loop could simply be for j in 1..col_cnt loop.
* Here we are simply illustrating some of the PL/SQL table
* features.
*/
col_num := rec_tab.first;
IF (col_num IS NOT NULL) THEN
LOOP
print_rec(rec_tab(col_num));
col_num := rec_tab.next(col_num);
EXIT WHEN (col_num IS NULL);
END LOOP;
END IF;
DBMS_SQL.CLOSE_CURSOR(c);
END;
/
+0
實際上,我只是想確認查詢中的隱式類型轉換規則。然而,這種方法很可能會有用,因爲我的數據庫設計(最終數據庫)成熟了。 – Steven 2009-07-06 14:31:06
相關問題
- 1. oracle數據類型
- 2. 通用數據類型標識
- 3. 從Vertica的標識到標識(1,1,1)的ALTER數據類型
- 4. Oracle數字數據類型
- 5. 根據類型標識創建類
- 6. Oracle 10gR2 CLOB數據類型
- 7. Oracle數據類型錯誤
- 8. Oracle 12.1數據類型
- 9. Oracle編號數據類型
- 10. Oracle PL/SQL數據類型
- 11. oracle數據類型問題
- 12. Oracle號碼數據類型
- 13. 識別數據類型
- 14. 識別cookie數據類型
- 15. C#數據類型 - > Oracle數據
- 16. 如何將oracle數據類型映射到java數據類型?
- 17. Oracle數字數據類型值插入
- 18. Oracle機器整數數據類型
- 19. Oracle 12c不能識別JSON類型
- 20. Ref遊標類型oracle
- 21. 查詢SQL Server/Oracle數據庫表數據 - 標識列
- 22. Oracle數據類型修改器
- 23. Oracle數據類型和存儲
- 24. Oracle號碼數據類型問題
- 25. Oracle數據類型的文本文件?
- 26. 確定ORACLE的確切數據類型
- 27. Netezza時間數據類型到Oracle
- 28. Oracle GRCC Tcg數據類型問題
- 29. C#和Oracle編號數據類型
- 30. Oracle SQL時間數據類型
想想吧......我寫了一個PL/SQL程序來轉儲查詢的結果到一個臨時表,然後讀取的信息從後USER_TABLE_COLUMNS。 – GameFreak 2009-07-06 15:09:27