• ベストアンサー

PLSQLからCの関数を

教えて頂きたい事があります。 PLSQLからC言語の関数を呼び出す事はできますでしょうか? またできる場合、どのような記述方法で書けばいいでしょか? どなたか教えて頂けませんか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

オラクルのバージョンやプラットフォームが不明ですが・・ 基本的に・・ オラクルには、外部プロシジャ呼出という機能があります。 これは、外部モジュール(WindowsならDLL、UNIXならSO)を呼び出す機能です。 詳しくは、アプリケーション開発者ガイドなどのマニュアルを参照してください。 (サンプルもオラクルサーバ上にインストールされているハズですので参考にしてください)

aaadd
質問者

お礼

マニュアルを読んでみます。 ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PLSQLについて

    初心者の質問でほんとうにほんとうに申し訳ありません。 PLSQLでお伺い致しのですが、 例えば、もしaというパラメータがNULLだった場合に、 b_procというプロシージャを呼び出すという処理があったとして、 その呼び出したプロシージャのINパラメータを、NULLとして取得したい時の記述として、   IF a is NULL THEN b_proc(INパラメータ);    INパラメータ =: null;  ENDIF; という記述方法は正しいでしょうか? どなか教えて頂けませんか? よろしくお願い致します。

  • C言語による楕円関数の記述

    C言語で楕円関数を記述したいのですが、記述方法がわかりません。 書籍はあるのですが、「絶版」になっているので見ることが不可能です。

  • ORACLE PRO*CからPLSQL(パッケージ)を使用した場合のトランザクション処理について

    ORACLE PRO*CからPLSQL(パッケージ)を使用した場合のトランザクション処理について教えて下さい。 ORACLE PRO*CからPLSQL(パッケージ)を呼び出して います。PLSQLの中でコミット・ロールバックせずにPRO*C側で制御したいのですが。PLSQL(パッケージ) 内で別のPLSQLを呼出したり、BEGIN-ENDを多様すると PLSQL内で自動的にコミットが発生している様に思わ れます。何か方法はないものでしょうか。 御存知の方、御教示をお願いします。

  • objective-cにはCのような関数はない?

    c言語とobjective-cを並行して勉強しています。 c言語では機能をまとめるために関数を定義できますよね。 ----- void display(int a){ printf("%d" , a); } int main(void){ display(10); } --- これでdisplayという関数に10という引数を渡して表示させることができますよね? objective-cの場合は例えば以下のように書くことがわかり、コンパイルも通りました。 - (void)display{ NSlog(@" TEST "); } しかし・・・・呼び出すことができませんね。。。 objective-cの場合は[ インスタンス メソッド名 ]; のような呼び方なのですよね。 メソッドだけを呼び出すことはできない、ってことなのでしょうか・・・? 色々検索してみたのですが、 @implement~@endで囲んでクラスにして インスタンスを作って、メソッドを呼ぶ方法ばかりで、 上記のC言語の例のような、単純な関数定義→呼び出しの方法を見つけることができませんでした。 上記のようなC言語の例はよくあると思うのですが、 これと同じことがobjective-cで、できるともできないとも、書いてないように思います。 例えば上のc言語と同じ動作をobjective-c に移植するとどうなるのでしょうか・・・?というか、不可能、ということでしょうか・・・?

  • C++の関数をCで呼ぶには??

    C++の関数をCで呼ぶには、「extern C」を使用することが有名だと思いますが、これだとC++で記述したソースコードにextern Cを追加することにあると思います。 では、C++のほうはまったく手をつけず、C++の関数をCで呼ぶことは可能なのでしょうか? 知っている方がいましたらよろしくお願い致します。

  • C言語で分割ファイル先の関数を呼び出す時

    いつもお世話になっております. C言語の関数の呼び出しについて質問があります. main文と同じファイルにある関数は,main文より上に記述している場合は プロトタイプ宣言で呼び出すことが出来ますが,ファイルを関数ごとに分割した場合はどうしたら良いのでしょうか? 例えば main_file.c と function_file.c という2つのファイルがあり, それぞれ main と function という関数を持っているとします. main文からfunction関数を呼び出したい場合, 私はいつも main_file.c 内で include "function_file.c" としていますが, これが一般的な方法なのでしょうか? 問題点や改善点を挙げて頂けると助かります. よろしくお願い致します.

  • エクセルのMID関数は、C言語では?

    最近C言語を始めたものです。 エクセルでは文字列の3文字目~5文字目を切り取る際に MID("文字列",3,2) と記述できますが、C言語の場合、はどのような記述方法になりますか?ご教授お願いいたします。 いま悩んでるのが、CHAR型の変数:aaaに"abcdefghi"を格納して、 aaaの3文字目~7文字目を抜き出したいというC言語での方法です。

  • C言語 main関数とsum関数の記述順について

    はじめまして。 【苦しんで覚えるC言語】(Web版)でC言語を学んでいる初学者です。 【第1部:C言語基礎編】>【関数の作り方】>【自作関数を作る】の部分(http://9cguide.appspot.com/11-01.html#S2)でつまづいています。 下記のような、1から100までの数字の合計を表示するプログラムが例題として取り上げられています。 しかし、ここが理解できないので、次の【プロトタイプ宣言】に進めずにいます。 例題1  sum関数をmain関数の後に記述した場合(プログラムが実行されない)。 #include <stdio.h> int main(void) { return 0; } int sum(void) { printf("%d\n",(1 + 100) * 100 / 2); return 0; } 例題2  sum関数をmain関数の先に記述した場合(プログラムが実行される)。 #include <stdio.h> int sum(void) { printf("%d\n",(1 + 100) * 100 / 2); return 0; } int main(void) { return 0; } 例題1の場合、【まずmain関数を作り、次にsum関数を作りました。この場合、main関数を解析している段階では、sum関数は発見されておらず、従って、main関数の中では、sum関数を使うことは出来なくなってしまいます。】との説明がありますが理解できません。 コンパイラがどのような順番でプログラムを処理しているか理解できていないので分からないのだと思います。 例題1の場合と例題2の場合の両方について、コンパイラがどのような順番でプログラムを処理しているのかを具体的に教えてください。 どうかよろしくお願い致します。

  • C言語の高階関数についてです。

    C言語の高階関数についてです。 double f ( (*g)(double) ){...} とすると「関数を引数にする関数」が作れますが、 「関数を引数にする関数」を引数にする関数って作れますか??? その場合は、引数のところどうやって書けばいいでしょうか??

  • PLSQLで

    PLSQL(Oracle9.i)で以下のことをしようとしています。 しかし、コンパイルは通るがステップ実行すると固まります。 -- 宣言部 TYPE REC_A IS RECORD( a NUMBER, b NUMBER, c NUMBER, d NUMBER, e NUMBER, f NUMBER, g NUMBER, ); TYPE B_TBL IS TABLE OF REC_A INDEX BY BINARY_INTEGER; TYPE C_TBL IS TABLE OF B_TBL INDEX BY BINARY_INTEGER; D_TBL C_TBL; -- 関数部 FOR i IN 1..3 LOOP  FOR J IN 1..3 LOOP   D_TBL(I)(J).a := 1;   D_TBL(I)(J).b := 2;   D_TBL(I)(J).c := 3;   D_TBL(I)(J).d := 4;   D_TBL(I)(J).e := 5;   D_TBL(I)(J).f := 6;   D_TBL(I)(J).g := 7;  END LOOP; END LOOP; なにぶんまだPLSQLの勉強始めて1ヶ月満たないもので、分からないことをどう伝えればいいのかも分からない状況です。 処理的には、D_TBL(I)(J)に値をいろいろセットし集計をとりCSVにはきだす処理です。 これだけでは分からないかもしれませんが、よろしくお願いします。