問題タブ [sap-ase]
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.
sql - Sybase: SQL を使用して CHAR または VARCHAR フィールドから印刷できない文字を削除するにはどうすればよいですか?
一部の文字列フィールドに印刷できない文字が含まれているように見える Sybase データベースを使用していますが、これにより処理コードの一部が失われています。一見、改行とキャリッジ リターンのみのように見えますが、そこには ASCII コード 27 もあります。ESC 文字、いくつかのアクセント付き文字、およびその他の奇妙な文字が含まれています。
データベースを変更するための直接アクセス権がないため、不良データを変更することはまだオプションではありません。今のところ、私はそれをフィルタリングするだけで間に合わせる必要があります. あるデータベースからテーブル データをエクスポートし、夜間のバッチ プロセスで別のアプリケーションが使用するデータベースにロードしようとしています。
理想的には、文字のリストを渡して、Sybase にそれらの文字を削除したデータを返すだけの関数が欲しいです。可能であれば、プレーン SQL でできることを維持したいと思います。
ASCII 0 - 31 の文字を削除するには、次のようにします。
TABLE から FIELD1 として str_replace(FIELD1, (0-31), NULL) を選択し、FIELD2 として str_replace(FIELD2, (0-31), NULL) を選択します
これまでのところ、str_replace は私が見つけることができる最も近いものですが、ある文字列を別の文字列に置き換えることしかできません。文字範囲はサポートされておらず、上記のことはできません。
Unixサーバー上のSybase ASE 12.5で実行しています。
sap-ase - ASE サイベース BLOB
こんにちは、ブロブ データ型の列にファイルを書き込みたいのですが、構文を教えてください。選択中にファイルを取得するための構文も送っていただければ幸いです。ありがとうございます。
sap-ase - メッセージ 3151: ダンプが実行されたときに、ダンプされたデータベースは静止状態ではありませんでした
データベース ダンプを新しい ASE サーバーにロードする作業を行っていますが、15 GB および 32 GB のダンプをデータベースにロードしようとすると、次のエラーが発生します。
メッセージ 3151、レベル 16、状態 2: サーバー 'TestServer'、行 1:
ダンプが実行されたときに、ダンプされたデータベースが静止していなかったため、Adaptive Server はこのデータベースをロードできません。DUMP DATABASE の前に sp_flushstats を実行し、ダンプ中にデータベースが更新されないようにします。
2 GB のダンプを db にロードすると、すべて問題ありません。ネットで検索したところsp_flushstats
、シングルユーザーでさらにdbダンプを取得するようにアドバイスされましたが、新しいダンプを取得する機会がありません。
これらのダンプは、Solaris Sparc にある ASE 12.5 インスタンスから取得されたもので、これらのダンプを Linux x86 にある ASE 12.5 インスタンスにロードしようとしています。それは問題を引き起こしていますか?または、このエラーは ASE Developer Edition のデータベース サイズ制限に関連している可能性がありますか?
linq - Linq 2 Sybase ASE データベース? オプションは何ですか?
既存の Sybase ASE データベースにクエリを実行する必要があり、データの取得に Linq 構文を使用したいと考えています。
書き込みアクセスは必要ありません。また、Linq 演算子の完全なセットも必要ありSelect()
ませ
SelectMany()
んWhere()
。GroupJoin()
利用可能なオプションは何ですか?
特に、nHibernate と、IQ ツールキットに基づく新しい Linq2Sybase プロバイダーの構築について疑問に思っています。
sap-ase - 問題sybase自動生成ID
タイプ bigint の PK 列 Id が 1、2、3 の順に自動的に入力されるテーブルがあります...そのため、生成された ID が突然非常に大きな値を持つことがあることに気付きました. たとえば、ID は 1,2,3,4,5,500000000000001,500000000000002 のようなものです 5 の後に大きなジャンプがあります... ID 6 、 7 はまったく使用されませんでした
私はこのテーブルで削除操作を実行しますが、欠落している ID が以前に使用されていなかったと確信しています。
なぜこれが発生し、どうすれば修正できますか?
これを見てくれてありがとう。
私の環境:sybase ase 15.0.3、linux
sap-ase - Sybase でパラメーターから動的列を作成する
Sybase でストアド プロシージャ (SP) を作成しようとしています。
SP は 5 つの varchar パラメータを取ります。
渡されたパラメーターに基づいて、特定のテーブルから選択される列名を作成したいと考えています。
以下は動作します:
DECLARE @TEST VARCHAR(50) SELECT @TEST = "国" --print @TEST
execute("SELECT DISTINCT id_country AS id_level, Country AS nm_level FROM tempdb..tbl_books INNER JOIN (tbl_ch2_bespoke_report INNER JOIN tbl_ch2_bespoke_rpt_mapping ON tbl_ch2_bespoke_report.id_report = tbl_ch2_bespoke_rpt_mapping.id_report) ON id_" + @TEST + "= tbl_ch2_bespoke_rpt_mapping.id_pnl_level WHERE tbl_ch2_bespoke_report.id_report = 14")
しかし、複数の結果が得られます:
1 1 行が影響を受けました。
1 4376 XYZ
2 4340 ABC
ただし、2番目の結果のみを取得したいと思います。
これを実現するために動的 SQLを使用する必要がありますか?
助けてくれて本当にありがとうございます。
--チャパックス
tsql - sybase - 文字列がハードコーディングされていない限り、インデックスを使用できない
Sybase 12.5.3 (ASE)を使用しています。MSSQL をかなり広範囲に使用してきましたが、Sybase は初めてです。ストアド プロシージャが非常に遅いシナリオに直面しています。比較的大きなテーブルの単一の SELECT stmt に問題を追跡しました。そのステートメントを変更すると、プロシージャーのパフォーマンスが劇的に改善されます (元に戻すと、大幅に速度が低下します。つまり、SELECT ステートメントが間違いなく原因です)。
上記のコードは、実際のコードを改造/簡略化したものです。手順の再コンパイル、統計の更新などをすでに試みたことに注意してください。
文字列がハードコードされている場合にのみ Sybase ASE がインデックスを選択し、別のテーブルから選択するときにテーブル スキャンを選択する理由がわかりません。誰か手がかりを教えてください。よろしくお願いします。
sql - Sybase での垂直分割に関するクエリ
sybase を使用しています。移動して別のテーブル B として作成したいいくつかの列を含む約 200 万レコードのテーブル A があります。このプロセスでいくつか質問があります... 1.決定しました垂直パーティショニングを使用します。それでよろしいですか? 2.または、このプロセスで使用できる他のテクニックは何ですか?
これに貴重な情報を提供してください。
ありがとう。
sql-server-2008 - Sybase ASE用の64ビットOLEDBおよび/またはADO.Netドライバはどこで入手できますか?
私はSybaseを初めて使用しますが、これまでのところ、Sybaseに接続するだけでも大変な苦痛です。64ビットSQL2008から接続できるように、Sybase ASE 15用の64ビットドライバをどこで入手できますか?私たちのSybaseサーバーは32ビットであり、メディアには64ビットドライバーはありません:(