1

ビューを作成する必要があるこのテーブルがあります。これを TABLEABC と呼びます。このテーブルの特徴は、2 つの列があることです。列 1 を C1 と呼び、CHAR(25) 列です。簡単です。

トリッキーな部分は、次のコラムです....そして、私がそれで何をする必要があるか. これを C2 と呼びます。これは 600 バイトです。

なぜあなたは尋ねることができますか?オフセットに基づいてデータを格納しているため、600 文字です。

例: NAME1 はサイズ:15 開始オフセット:1 終了オフセット:12 NAME2 はサイズ:45 開始オフセット:13 終了オフセット: 49

したがって、基本的には、オフセットに基づいてこの列を保存する必要があり、さらに「名前付きオフセット」を特定する必要があります.IE NAME1 / NAME2(実際には別のものと呼ばれますが、今のところName1 / Name2)これらのオフセット。

これで、Oracle の管理作業を少し行いましたが、基本的な作業だけです。私は SQL Server についてよく知っていますが、これは私が慣れ親しんだことをはるかに超えていますが、私は常に挑戦を探しています。ビューも私にとっては新しいものです。そのため、さらに難しくなります。

おそらくこれは、次のような SUBSTR 関数になると思います。

SELECT SUBSTR(C2, 1, 12) As NAME1 from TABLE

それはうまくいくでしょうか?私はストアド プロシージャで何もしていません。

編集:

したがって、サンプルに関しては、(さまざまなオフセットを追加する必要があります)、このようなものが機能します。(選択ステートメントを配置する方法がわかりません。それらを互いの上に追加することはできますか?これは機能しますか (残りの選択を追加すると仮定しますか?)、最後に何かを追加する必要がありますか?

CREATE VIEW VIEW1 AS
SELECT C1 FROM TABLE
SELECT SUBSTR(C2, 1,12) As 'NAME1' from TABLE
SELECT SUBSTR(C2, 13, 45) As 'NAME2' from TABLE

4

1 に答える 1

1

何かのようなもの

CREATE VIEW VIEW1 AS
  SELECT
    C1,
    SUBSTR(C2, 1,12) AS NAME1,
    SELECT SUBSTR(C2, 13, 45) AS NAME2
  FROM
    TABLE1;

うまくいくでしょう。

于 2013-05-08T13:50:14.613 に答える