CSEでのデータベース作成時のエラーについて

このQ&Aのポイント
  • PostgreSQLのCSEを用いてデータベースを作成する際にエラーが発生し、テーブル作成などができなくなる問題について質問です。
  • エラーの原因はEncodingの問題だと思われますが、解決方法を教えていただきたいです。
  • もしEncodingの問題でない場合は、別の対処法を教えていただけますか。
回答を見る
  • ベストアンサー

CSEでのデータベース作成時のエラーについて

こんばんは。 PostgreSQLについて質問させてください。 CSEを使ってSQLの勉強をしていますが、 データベースを作成した際に、 WARNING: nonstandard use of escape in a string literal at character 42 WARNING: LOCATION is not supported anymore という表示がされ、 その後、テーブル作成などをすると エラーになり実行できません。 例えば、 create table テーブル名( id number(8) primary key, name char(10), birth date ) ; を実行した際に、 SQL実行中に以下のエラーが発生しました。 ERROR: syntax error at or near "(" at character 32 というエラーになります。 この原因は、Encodingの問題だと思っていますが、 どのように解決したらいいか教えてください。 また、Encodingの問題ではない場合は その際の対処法を教えてください。 以上、ご回答のほどお願いいたします。

noname#241534
noname#241534

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

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

number型は、Oracle独自のデータ型で、PostgreSQL等では実装されていませんが?

noname#241534
質問者

お礼

ありがとうございました。 以下のエラーはデータベース作成時に出ましたが、 問題ないでしょうか? WARNING: nonstandard use of escape in a string literal at character 42 WARNING: LOCATION is not supported anymore 以上です。

関連するQ&A

  • ¥を含む文字列を挿入するとエラーとなります

    こんにちわ、よろしくお願いします。 OS:WindowsXP PostgreSQL:8.4.0 DBの文字コードはUTF8で構築しています。 【現象】 文字型のカラムに¥を含んだ文字列を挿入しようとすると以下のエラーになります。 WARNING: nonstandard use of escape in a string literal at character 331 SQL実行中に以下のエラーが発生しました。 ERROR: invalid byte sequence for encoding "UTF8": 0x00 エラーとなるのは例えば「C:\temp\hoge.txt」といった文字列です。 ただし、 「C:/temp/hoge.txt」 「C:\\temp\\hoge.txt」 とした場合は正常に挿入が出来ます。 8.1.11で同じプログラムを動かしているときは問題なく動作していました。 PostgreSQLを最新の8.4.0にバージョンアップしたところ上記のエラーが発生するようになりました。 エンコードの問題かと思い Postgresql.confのclient_encodingを色々設定してみましたが、解決しませんでした。 解決法が見当たらず困っています。 よろしくお願い致します。

  • SQLによるCSEとACCESSの関係

     お世話になります。 少し困惑していることがあるので、 可能性でも良いので教えてくださると助かります。  DBは、ACCESSのmdbファイルを使っています。 ACCESSに直接、クエリを作成する場合と CSEを使ってmdbファイルにアクセスし、 そこで全く同じSQL文を作成した場合で差異があります。  実は、CSEを使ってSQL文を実行する場合と ACCESSを使ってSQL文を実行する場合で 実行できたり、できなかったりするようです。  たとえば、ワイルドカードが【*】だったり、 【%】でないと認識しなかったりなど…。  もしかしたら、CSE側で何か設定とかいるのでしょうか? ACCESSのクリエ実行では取得できるSELECT文もあれば、 CSEで行うと実行できなかったりするケースもあり、 整合性がとれないのです。  確信でなくても構いませんので何か思い当たることがあれば、 教えてください。お願い致します。

  • CSE PostgreSQLのテーブルにプライマリキーを作成する方法

    現在、CSEを使いPostgreSQLのテーブルから 一つの行を消そうとしたところ、 『更新対象のテーブルにプライマリキーが存在しない為、更新処理を行う事ができません。 更新処理を行うには、更新対象のテーブルにプライマリキーが定義されいる必要があります。』 と言うようなエラーメッセージが出てきて困っています。 どこを調べてもCSEでのプライマリキーの作成方法は載っていないのですが、そもそも『CSEでのプライマリキーの作成』は不可能なのでしょうか? もし、CSEで、もしくは他の方法で既存のテーブルにプライマリキーの定義の仕方を知っている方いましたらご教授下さい。 それか、PostgreSQLのデータの一部を(テーブルの内容全てではなく一行だけ)削除する方法ありましたらそちらもご教授下さい。 よろしくお願いします。

  • cseデータ閲覧時に文字化け

    cseからodbc経由でmysqlに接続しています。 select文発行時の結果が、全角の文字データが??で表示され、正しく見ることができません。 また、cseから以下のようなsqlを発行するとエラーが発生してしまいます。 insert into myaddress values('168-0063','ああ',current_timestamp(),now(),current_date(),1234567,125) エラーメッセージ SQL実行中に以下のエラーが発生しました。 エラーコード:1366 [MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community-nt]Incorrect string value: '\x82\xA0\x82\xA0' for column 'address' at row 1 SQLステータス:S1000 mysqlのプロンプトでデータを見ると全角文字列は文字化けすることなく 表示されます。 解決方法が解らず困っています。 ご存知の方がいらっしゃいましたら、宜しくお願いします。 動作環境は以下です。 wincse: ver 1.59 mysql :5.0.37 myodbc:3.51

  • テーブル作成時のエラーについて(Mysql 5.1.30)

    SQLを勉強始めたばかりの超初心者です。 先日勉強のため、Mysql ver.5.1.30をDLしてインストールしました。 名簿テーブルを作成しようとMySQL Command Line Clientから以下のコマンドを入力しました。 mysql> create table 名簿( -> 姓 varchar(12), -> 名 varchar(12), -> 生年月日 date); 実行すると以下のエラーが表示されます。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '名簿( 姓 varchar(12), 名 varchar(12), 生年月日 date)' at line 1 これは何が間違っているのでしょうか? テキストどおりに入力しているのですが、テーブルが作成できないため次に進めません。 周りに詳しいものもいないため困っています。 ぜひご教授よろしくお願いします。

    • ベストアンサー
    • MySQL
  • ストアドプロシージャの引数にフィールド名を指定したい

    以下のようにストアドプロシージャを作成し、 ------------------------------------------------------------ CREATE FUNCTION test(integer) RETURNS integer AS'  DECLARE   aaa ALIAS FOR $1;  BEGIN   IF aaa BETWEEN 1 AND 5 THEN    RETURN 5;   ELSIF aaa BETWEEN 6 AND 10 THEN    RETURN 10;   ELSIF aaa BETWEEN 11 AND 15 THEN    RETURN 15;   END IF;  END;' LANGUAGE 'plpgsql'; ------------------------------------------------------------ 以下のようなSQL構文でこのプロシージャを使用したいと思っています。 ------------------------------------------------------------ select test(フィールド名) from テーブル名; ※「フィールド名」のフィールドにはinteger型のデータが入っています。 ------------------------------------------------------------ が、このSQLを実行すると以下のようなエラーが出ます。(CSE使用) ------------------------------------------------------------ WARNING: Error occurred while executing PL/pgSQL function test WARNING: at END of toplevel PL block WARNING: Error occurred while executing PL/pgSQL function test WARNING: at END of toplevel PL block SQL実行中に以下のエラーが発生しました。 WARNING: at END of toplevel PL block ------------------------------------------------------------ このように、ストアドプロシージャの引数にフィールド名を指定することはできないのでしょうか。 どなたかご教示ください。

  • phpPgAdminでテーブルが作成できない

    PHPからPostgresSQLのDBのテーブルへの読み込みができません。 前任者が作成したtestテーブルでPHPを作成すると問題ないが、 私が作成したtest2テーブルに変更すると、以下のメッセージが出ます。 ******エラーメッセージ********************* Warning: pg_query(): Query failed: ERROR: permission denied for relation test2 ******************************************* phpPgAdminでtest2テーブルを作成しましたが、作成の仕方が問題なのでしょうか。 test2テーブルはtestテーブルとわかる範囲で同じ設定にしてあります。 ぼんやりとした質問になってしまって恐縮ですが、 ご教授ください。宜しくお願い致します。 ****************************************** 作成したPHPの一部 ******************************************* $sql = "SELECT * FROM test;"; ↑これだと問題なく表示される $sql = "SELECT * FROM test2;"; ↑こちらだとエラーになる *******************************************

    • ベストアンサー
    • PHP
  • ファンクション内での円マークについて

    値をカンマ形式で変換するファンクションを作成しています。 ファンクションの内容は下記の通りです。 CREATE FUNCTION Test (DECIMAL) RETURNS VARCHAR(15) AS ' DECLARE arg ALIAS FOR $1; str VARCHAR(16); BEGIN str := ''''; SELECT TRIM(TO_CHAR(arg, ''\\9,999,999,999'')) INTO str; RETURN str; END; ' language 'plpgsql' ; 上記のコマンドを実行したらワーニングが出力されました。 下記が出力したワーニングの内容です。 WARNING: nonstandard use of \\ in a string literal 行 2: ' ^ HINT: Use the escape string syntax for backslashes, e.g., E'\\'. WARNING: nonstandard use of escape in a string literal 行 1: SELECT TRIM(TO_CHAR( $1 , '\9,999,999,999')) ^ HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. QUERY: SELECT TRIM(TO_CHAR( $1 , '\9,999,999,999')) CONTEXT: SQL statement in PL/PgSQL function "test" near line 6 CREATE FUNCTION ※一応、ファンクションは作成できたんですで・・・ ファンクションを実行したらワーニングと結果が出力されました。 SELECT test(10000); 下記が出力したワーニングの内容です。 WARNING: nonstandard use of escape in a string literal 行 1: SELECT TRIM(TO_CHAR( $1 , '\9,999,999,999')) ^ HINT: Use the escape string syntax for escapes, e.g., E'\r\n'. QUERY: SELECT TRIM(TO_CHAR( $1 , '\9,999,999,999')) CONTEXT: PL/pgSQL function "test" line 6 at SQL statement test -------- 10,000 (1 行) 下記のように円マークの箇所にEをつけたりしましたがワーニングが解消する事はできませんでした。多分、私の記述がいけないような気がします。 すみませんがどのように記述すればいいのでしょうか。 ご教授いただけませんでしょうか。 宜しくお願いします。

  • Access データベース新規作成時のエラー

    Access2007にて空のデータベースを新規作成する際、  「オブジェクト ライブラリは登録されていません」 のメッセージが表示されてしまいます。 そのためかどうかわからないのですが、その後テーブルを作成し、デザインビューでフィールド プロパティを編集するため定型入力の[…]ボタン押下すると、  「DLL 読み込み時のエラーです。」 のメッセージが表示され、空の定型入力ウィザードが起動されてしまいます。 Officeの再インストール以外で、何か対処方法がありましたら教えていただけないでしょうか。

  • ビュー作成時のエラー

    データベースの実装で、初めに3つのテーブル(memberInfor,goodsInfor,orderInfor)を作りました。次に、ビュー作成で create view result_list as select memberInfor.membernum, memberInfor.name, goodsInfor.goodsname, orderInfor.orderday, orderInfor.number from memberInfor join goodsInfor join orderInfor on memberInfor.membernum=orderInfor.membernum and goodsInfor.goodsname=orderInfor.goodsname; ERROR: syntax error at or near ";"(文字位置: 277) 1行目:...for.membernum and goodsInfor.goodsname=orderInfor.goodsname;                                     ^ このように、実行するとエラーが出てしまいます。この解決方法が分かりません。どなたか教えていただけませんか?