Customer_IDに格納する新しい値を取得し、新規顧客に関する情報をCustomer表に格納するストアードファンクションの例
create or replace function Get_New_Customer_ID
(Salutation varchar2,
Last_Name varchar2,
First_Name varchar2,
Street_Address varchar2,
City varchar2,
State varchar2,
Zipcode varchar2,
Home_Phone varchar2,
Work_Phone varchar2)
return number is
New_Customer_ID number(4);
begin
select Customer_Sequence.nextval
into New_Customer_ID
from dual;
insert into Customer
(Customer_ID, Salutation, Last_Name, First_Name,
Street_Address, City, State, Zipcode, Home_Telephone_Number,
Work_Telephone_Number)
values
(New_Customer_ID, Salutation, Last_Name, First_Name,
Street_Address, City, State, Zipcode, Home_Phone, Work_Phone);
return New_Customer_ID;
end;
/
において、
select Customer_Sequence.nextval
into New_Customer_ID
from dual;
のCustomer_Sequence.nextvalがどういう意味なのかわからくて困っております。dualという表しか使っていないのに、Customer_Sequenceという表のnextvalという列から取り出しているように見えて違和感を感じるのです。また、新しい値を取得というのは、ユーザがキーボードで打ち込むのでしょうか?
また、dualはシステムで用意されている表なのでしょうか?
No.2ベストアンサー
- 回答日時:
一意な通し番号を得る仕組みとして、SEQUENCE型というデータ型があります。
このselect文では、次の通し番号を得ています。
表名のdualというのは、「select 関数など from 表名」といった構文で、特定の表名が必要ない場合に指定できるダミーです。
No.1
- 回答日時:
Customer_Sequence別の場所で定義されていると思いますが、SEQUENCE型なのでしょう。
SEQUENCE型は順番にユニークな番号を生成する特殊な型で、DUALとはOracleに用意されているダミーの表です。
参考URL:http://www.mitene.or.jp/~rnk/TIPS_ORCL_SEQ.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- 営業・販売・サービス 仕入れの方法 1 2023/05/21 18:55
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- その他(パソコン・周辺機器) Bluetooth 機器を二つ以上つなぐとつないだ機器が使えなくなる 2 2022/08/20 17:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オラクルのデフォルトセッション数
-
こんにちは
-
Transact-SQLでストアードプロ...
-
SQL/Loaderでの年月日時分秒の...
-
ODBCリンクの際にACCESSでは読...
-
TeXの索引作成に関して
-
Accessのマクロでモジュールを...
-
SSIS 変数の値をSQL実行タスク...
-
callで順に実行されるプロシー...
-
ドメインの取得日を変更する方法
-
wordで文字の上に線を引きたい...
-
医は仁術ですか算術ですか
-
ストアドプロシジャからストア...
-
エクセルVBAの次のコードの...
-
Access VBAで行ラベルが定義さ...
-
PL/SQLのエラーについて
-
エクセルVBAでUserFormを起動し...
-
ブラウザ上に表示されたデータ...
-
プロシージャの全検索?
-
ワードで日付を自動更新したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sqlplusでヘッダーが付かない
-
全角空白のTRIMができない...
-
sqlplusのspoolで空白行出現
-
PL/SQLでSPOOLさせたいのですが...
-
DB2のSELECTでカンマ編集につい...
-
SPOOLのファイル名
-
オラクルのデフォルトセッション数
-
オラクル10gで開発を行ってい...
-
SQL SV2K select結果の置換につ...
-
MySQLの関数でCHARと言うのがあ...
-
こんにちは
-
nextvalについて
-
SQLの結果に納得できません。ど...
-
Access VBAで行ラベルが定義さ...
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
Statement ignored というエラー
-
キャッシュを使わずにSELECTを...
-
ODBCリンクの際にACCESSでは読...
-
今日の日付が入った行のデータ...
おすすめ情報