8
A
答えて
14
Dump機能:
データ型コード、バイト単位の長さ、およびexprの内部表現を含むVARCHAR2値を返しを。返される結果は、常にデータベース・キャラクタ・セット内にあります。各コードに対応するデータ型については、表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
関連する問題
- 1. テキストファイル用のOracle Data Type?
- 2. Oracle expdp without data
- 3. sql oracle query data export
- 4. php string end identify
- 5. 設定列DATA TYPE(PHPからMySQLへ)
- 6. Oracle Data Miner - Oracle Rエンタープライズ・インタフェースの簡素化
- 7. Oracle CREATE TYPEおよびPL/SQL
- 8. Oracle Data Integratorとは何ですか?
- 9. Entity Framework 6無料のOracle Data Provider
- 10. bind(type、[data]、fn)と非インライン関数を使用する
- 11. Core Data type Transformableを使用しない*場合*
- 12. data-calc-typeとはどういう意味ですか?
- 13. Oracle JetのojInputNumberコンポーネントはtype = "text"を与えます
- 14. Oracle Managed Data Access用のWeb構成の設定
- 15. Pivotal TCサーバーでOracle Data source JNDIを構成する方法は?
- 16. JDBCからOracle ADT/User Typeメタデータを取得する
- 17. Oracle Data AccessでExecuteReader()を試行するとODP.NET 11.2
- 18. Paperclip - Image Uploading Error: "'identify'コマンドで認識されません。"
- 19. <type 'exceptions.NameError'>
- 20. Ora-04072:INVALID TRIGGER TYPE
- 21. SAP/ABAPでTYPE、TYPES、TYPE-POOL、TYPE-POOLS、TYPE-GROUPとは何ですか?
- 22. イメージファイルは 'identify'コマンドで認識されません。 (heroku)
- 23. maven generate-sources -identifyプラグインからソースパスを生成しました
- 24. VB.NetではOracle Data Access(ODP)を使用したOracle Connectionのメモリリーク(C#はありません)
- 25. .data LMA overapps .data VMAアドレス
- 26. MVC 5 Temp Data、Parse Data
- 27. Sorting Reference TypeとValue Typeのパフォーマンス
- 28. azureへの公開後にOracle Data Accessを使用できない
- 29. SYS_REFCURSORを使用してNO DATA FOUNDを処理する方法 - ORACLE
- 30. Oracle Data Modelerでどのようにトリガーを作成しますか?
そして...私は当時から情報を読み取り、一時テーブルへのクエリの結果をダンプするPL/SQLプログラムを書いて考えますUSER_TABLE_COLUMNS。 – GameFreak