問題タブ [dbd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
7135 参照

perl - %ENVが機能せず、共有ライブラリを使用できません

%ENVPerlスクリプトでvarを使用してOracleライブラリを使用することはできません。

印刷$ENV{'ORACLE_HOME'}して$ENV{'LD_LIBRARY_PATH'}すべて問題ないように見えても、スクリプトを実行するとエラーが発生します。

install_driver(Oracle)が失敗しました:モジュールDBD ::Oracleの「/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so」をロードできません:libclntsh.so.10.1:共有オブジェクトファイルを開くことができません:いいえそのようなファイルまたはディレクトリ(/usr/lib64/perl5/DynaLoader.pm行200)。at(eval 3)行3コンパイルがrequire at(eval 3)行3で失敗しました。必要な共有ライブラリまたはdllが予期した場所にインストールされていない可能性があります。 persistence.perlの22行目

Webで検索すると、Perlでenv変数を設定する正しい方法は%ENVハッシュを使用することであることがわかりました。

エクスポートORACLE_HOMELD_LIBRARY_PATHてunixシェル(export LD_LIBRARY_PATH=...)を介して正しく動作します。何かアドバイス?

0 投票する
1 に答える
490 参照

mysql - スクリプトでdbd mysqlモジュールをパッケージ化するperl

スクリプトがあり、すべての外部モジュールをローカルに保持しているので、スクリプト全体を zip にパッケージ化して、すべてのモジュールを別のマシンにインストールすることなく、すべてのマシンで動作させることができます。そうです:

mysql データベースへの接続を開始しようとしているので、DBD、DBI、および mysql をローカルにインストールする必要があります。これを行うにはどうすればよいですか? .pmファイルをコピーして同じ方法を試しましたが、どちらかが得られます

また

0 投票する
1 に答える
634 参照

mysql - DBD-mysqlエラー:選択したCPUはx86-64命令セットをサポートしていません

5.14.2にDBD-mysql-4.020perlモジュールをインストールしています。

makeを実行すると、次のエラーが発生します。

cc -c -I / u01 / app / appadmin / product / perl-5.14.2 / lib / site_perl / 5.14.2 / x86_64-linux / auto / DBI -I / usr / local /mysql-standard-4.1.14- pc-linux-gnu-i686 / include -mtune = pentiumpro -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -fno-strict-aliasing -pipe -fstack-protector -I / usr / local / include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS = 64 -O2 -DVERSION = \ " 4.020 \ "-DXS_VERSION = \" 4.020 \ "-fPIC" -I / u01 / app / appadmin / product / perl-5.14.2 / lib / 5.14.2 / x86_64-linux / CORE "dbdimp.c dbdimp.c: 1:エラー:選択したCPUはx86-64命令セットをサポートしていませんmake:* [dbdimp.o]エラー1

コンパイラをgcc4.4にアップグレードし、これを克服するために多大な努力を払いました。これを解決し、perlモジュールをインストールする際のご意見をお待ちしております。

0 投票する
2 に答える
2742 参照

perl - BEGIN ブロックの LD_LIBRARY_PATH の初期化が失敗する

DBI モジュールを使用して Oracle に接続するには、 /oracle/v10.2.0/lib を LD_LIBRARY_PATH に追加する必要があります。

perl スクリプトを実行する前にシェルで LD_LIBRARY_PATH を設定すると、すべて問題ありません。

しかし、スクリプトからは機能しません:

スクリプトを実行すると、次のエラーが表示されます。

install_driver(Oracle) が失敗しました: モジュール DBD::Oracle の '/usr/apps/perl5/site_perl/5.8.8/i686-linux/auto/DBD/Oracle/Oracle.so' をロードできません: libclntsh.so.10.1 : 共有オブジェクト ファイルを開けません: No such file or directory at /usr/apps/perl5/5.8.8/i686-linux/DynaLoader.pm line 230. at (eval 3) line 3 Compilation failed in require at (eval 3) 3 行目。おそらく、必要な共有ライブラリまたは dll が /var/tmp/getTraceDB.pl 23 行目の期待される場所にインストールされていない可能性があります

0 投票する
2 に答える
989 参照

perl - 文字列は、PerlのDBI $ sth-> execute()関数を介してデータベースに挿入するときに数値に変換されます

PerlのDBIおよびSQLiteデータベースを使用しています(DBD :: SQLiteがインストールされています)。私は次のコードを持っています:

私が抱えている問題は$book_info->{identica}、0で始まる場合、それらが削除され、データベースに数値が挿入されることです。

たとえば、identicaof00123はに変換され123ます。

SQLiteには型がないことを知っていますが、DBIにidentica数値ではなく文字列として挿入させるにはどうすればよいですか?

"$book_info->{identica}"渡すときのように引用してみまし$sth->executeたが、うまくいきませんでした。

編集

クエリに直接値を挿入しても機能しません。

00123これはまだ、、123そして...00000000099

編集

なんてこった、私はコマンドラインでこれをしました、そして私はこれを手に入れました:

SQLiteによって削除されました!

スキーマは次のようになります。

何が起こっているのかアイデアはありますか?

解決

これはsqliteの問題です。ジムのコメントの回答を参照してください。はsqliteでSTRINGある必要があります。TEXTそれ以外の場合は、数値として扱います。

スキーマを次のように変更すると、問題が解決しました。

0 投票する
1 に答える
3235 参照

perl - DBD::Oracle のインストール

DBD::Oracle を Mac (Snow Leopard 10.6.8) にインストールするための次の手順に従おうとしています: How do you install perl DBD::Oracle on OSX Snow Leopard 10.6

私が実行しようとした時点まで、すべてがうまくいきました

このコマンドを実行しようとすると、次のエラーが表示されます。

このコマンドがどのディレクトリから実行されるべきかについて、指示は少し混乱しています。root ユーザーとしてログインしているときに oracle_instantClient64 ディレクトリから、通常のユーザーとしてログインしているときに oracle_instantClient64 ディレクトリから、通常のユーザーとしてログインしているときに ~/.cpan/build ディレクトリから実行しようとしました。この投稿は、root ユーザーとしてログインしたときに ~/.cpan/build ディレクトリからコマンドを実行する必要があることを暗示しているようですが、root としてログインしたときにそのディレクトリが表示されません。

0 投票する
2 に答える
4938 参照

mysql - Perl の DBD::mysql を使用しようとするとエラーが発生するのはなぜですか?

Perl を使用して MySQL データベースにデータを書き込もうとしています。ただし、スクリプトを実行すると、次のエラーが表示されます。

Can't locate loadable object for module DBD::mysql in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at LargeLDAPSearch.pl line 10.

これらの「使用」ステートメントと次のコードがあります。DB 接続を試みる前にスクリプトが機能していたため、これはほんの一部の抜粋です。

ローカルの Perl フォルダーに移動し、lib ファイル ディレクトリを検索しました。サブフォルダーには、DBI と DBD サブフォルダーの 2 つの/lib/フォルダーがあり、DBD に MySQL サブフォルダーがあり、DBI の下に MySQL サブフォルダーがある DBD サブフォルダーもあります。 /lib/DBD/mysql/& `/lib/DBI/DBD/mysql/`

これはエラーである可能性があります。フォドラーが 2 か所あります。CPAN Web サイトにアクセスし、手動の isntall 手順を試しましたが、SQLLite に関する DBI のインストール エラーが表示されます。

0 投票する
1 に答える
639 参照

perl - Bugzilla スロー エラー DBD:DynaLoader で Pg が失敗しますか?

bugzilla にアクセスすると、次のエラーが表示されます。

これを修正するにはどうすればよいですか?

0 投票する
2 に答える
2894 参照

json - perl DBI レシピ列配列

以下は私のSQLクエリ出力です

接続して結果を取得する Perl 手順

http://www.perlmonks.org/?node_id=284436#fetchingを読んでいますが、列の値を配列要素として格納する方法がわかりませんでした。(下図参照)

また、値フィールドはデフォルトでjsonの「文字列」として表示されますが、数値として変換する方法に関する推奨事項はありますか?

0 投票する
3 に答える
11179 参照

perl - Solaris 11 64ビットを使用したCGI、DBI、およびDBD::Oracleのインストール

64ビットのSolaris環境にCGIDBIDBD :: Oracleとドライバをインストールしようとしましたが、ほとんど役に立ちませんでした。私が遭遇したエラーの数は気が遠くなるようなものであり、環境変数の変更、ディレクトリ参照の変更、ファイルの移動とコピー、コンパイラの変更など、私が試した回避策の数はさらに悪化しています。そして最悪の部分は、Solarisの最新バージョンにモジュールをインストールするためのドキュメントがほとんどないことです。

これが私たちが行ってきた最初のステップです。

  1. まず、http://search.cpan.org/にアクセスします。次に、ダウンロードします。

  2. 次に、ターミナルウィンドウを開き、rootに切り替えて、[ダウンロード]フォルダに移動します。

  3. ここから、以前にダウンロードしたファイルを解凍します(ここでは問題ありません)。

    /li>
  4. 次に、後で必要になる可能性がある場合に備えて、tarファイルをアーカイブします。

    /li>
  5. これらの手順が完全に必要かどうかわからないため、ここで少し混乱します。基本的に、正しいPerlをセットアップする必要があると考えています(最新のOracleには64ビットが必要で、デフォルトで使用されるPerlは32ビットです)。

    1. which perl使用しているPerlの現在のバージョンを判別するために入力します。デフォルトバージョン(または32ビット)を使用していることを示しているはずです。
    2. 次の手順を実行して、64ビットのPerlインストールが利用可能であることを確認します。file /opt/oracle/rdbms/perl/bin/perl
    3. が表示されますELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped<
    4. PATH変数に追加して、このバージョンのPerlの使用に切り替えます。export PATH=/opt/oracle/rdbms/perl/bin:$PATH
    5. タイプwhich perl。これで、にあるPerlが表示されることを確認しopt/oracle/rdbms/perl/bin/perlます。
    6. 「」と入力perl -Vし、エラーが表示された場合は、以下の変数を設定します。

      /li>
  6. cc次に、CGI / DBI / DBD-Oracleをインストールできるように(コンパイラ)を設定します。

    1. 入力して、見つからないcc --versionことを確認します。cc
    2. ブラウザを開き、SolarisStudioに移動します。ここに、Sunのコンパイラを含むパッケージがあります。
    3. Solaris11OSプラットフォーム用の「TarfileonSolarisSPARC」をダウンロードします。
    4. ターミナルウィンドウで、次のように入力して上記のファイルを解凍します。bzcat SolarisStudio12.3-solaris-sparc-bin.tar.bz2 | tar xf -
    5. .bz2以前に作成したアーカイブフォルダにファイルを移動します。mv SolarisStudio12.3-solaris-sparc-bin.tar.bz2 $HOME/Downloads/archive_tar
    6. ここで、新しいコンパイラをパスに追加したいので、次の方法でこれを行います。export PATH=$PATH:/home/oracle/Downloads/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin
    7. と入力cc --versionします。このコマンドは何も実行しないはずです(おそらくいくつかの警告をスローします)が、それ以上は表示されませcc not foundん。
  7. ここでは、CGIモジュールから始めて、モジュールとドライバーのインストールを開始します。

    1. 案内する$HOME/Downloads/CGI.pm-3.59
    2. タイプperl Makefile.PL
    3. 正しい場所を指すようにmakeファイルを変更する必要があります。

      1. タイプvi Makefile
      2. :%s,../lib/site_perl/5.10.0,/opt/oracle/rdbms/perl/lib/site_perl/5.10.0,g
      3. :%s,../lib/5.10.0,/opt/oracle/rdbms/perl/lib/5.10.0,g
    4. ここで入力しますmake

    5. 次に、次のように入力しますmake install
    6. 次に、DBIモジュールに移動します。に移動し$HOME/Downloads/DBI-1.621ます。
    7. タイプperl Makefile.PL
    8. ここでも、正しい場所を指すようにこのmakeファイルを変更する必要があります。

      1. タイプvi Makefile
      2. :%s,../lib/site_perl/5.10.0,/opt/oracle/rdbms/perl/lib/site_perl/5.10.0,g
      3. :%s,../lib/5.10.0,/opt/oracle/rdbms/perl/lib/5.10.0,g
    9. ただし、これらは変更したくない2行を変更します。したがって、を検索しMAKEMAKERXSUBPPDIR、以下の値に戻します。

      /li>
    10. ここで入力しますmake

    11. 次に、次のように入力しますmake install
    12. 次に移動します$HOME/Downloads/DBD-Oracle-1.44
    13. タイプperl Makefile.PL

use DBI 1.51;そして、それは基本的に、Makefileの21行目で致命的なエラーが発生する場所であり、スタックをトレースすると、@INCが見つからないことが示されますDBI.pm。そのため、バイナリライブラリファイルを移動しようとしました。現時点ではSolarisボックスにアクセスできないため、正確なエラーコードを再投稿できません。おそらく火曜日(マシンに戻ることができる最も早い時期)にそれを含めることができるはずです。しかし、誰かがこの点について何かアイデアを持っていますか?

CPANシェルを使用した代替ルート

  1. ターミナルウィンドウを開き、rootユーザーとして次のパッケージをインストールします。

    /li>
  2. $ oracle_homecd $oracle_homeに移動し、次のようにします。

    /li>
  3. PERL5LIB環境変数を変更します。

    • export PERL5LIB=/apps/twiki-root/perlmodules
    • 次のように入力して確認します。echo $PERL5LIB
  4. CPANシェルを開き、更新します。

    初めての場合は、を押しreturnて自動構成を受け入れます。次に、次のコマンドを入力して、CPANのミラーの場所を変更します。

    /li>
  5. ファイルを開き、Config.pm以下の説明に従って変更します。

    これらの値を変更します。

    ファイルへの書き込み/保存して終了→:wq

  6. gcc設定されていることを確認してください。

    確認方法:which gcc

  7. ここでもう一度CPANシェルを開き、DBIモジュールのインストールを開始します。

    /li>

そして、これはすべてががらくたになるところです。エラー:

申し訳ありませんが、これを編集してエラーを表示するのに時間がかかり、途中で少し忙しくなりました。この巨大なエラーが何を意味するのか、誰かが何か考えを持っていますか?私はそれがコンパイラに関連していると思いますが、何がわからないのです。

新しい編集

そのため、回避策を見つけた後、インストールプロセス(驚くほど時間がかかりました)を経て、最終的にこれが実現しました...

それに基づいて、私は先に進んでやりました/home/oracle/perl5/perlbrew/bin/perlbrew switch perl-5.16.0が、それは戻ってきました、perl-5.16.0 is not installed


:/

私は先に進んで、perl-5.16.0のインスタンスを探してみました...

それから私は試しました、/home/oracle/perl5/perlbrew/bin/perlbrew switch /home/oracle/perl5/perlbrew/build/perl-5.16.0そして私はまだ得ました:/home/oracle/perl5/perlbrew/build/perl-5.16.0 is not installed

:/