sql >> データベース >  >> RDS >> Oracle

フォーマットエラーが発生するのはなぜですか:プロパティはOracleに接続している「v $ session.program」ですか?

    私たちはそれを理解しました。アプリケーション名が1文字長すぎました:49 48の代わりに文字 以下。

    これがv$sessionのリストです プロパティとその長さの制限:

    • v$session.machine :64
    • v$session.iname :制限なし
    • v$session.ename :制限なし
    • v$session.process :24
    • v$session.program :48
    • v$session.terminal :30
    • v$session.osuer :30

    また、どのプロパティもこの正規表現に一致することはできません:.*[\00\(\)].* 、これは括弧がないことを意味すると思います。

    エラーが発生してコードを確認したい場合は、IDEにSQLExceptionの例外ブレークポイントを追加するだけです。 。最終的にT4CConnection.classというクラスになります。 。

    メソッドの逆コンパイルされたコードvalidateConnectionProperties()は次のとおりです。 :

    void validateConnectionProperties() throws SQLException {
        super.validateConnectionProperties();
        String var1 = ".*[\\00\\(\\)].*";
        SQLException var2;
        if(this.thinVsessionOsuser == null || !this.thinVsessionOsuser.matches(var1) && this.thinVsessionOsuser.length() <= 30) {
            if(this.thinVsessionTerminal == null || !this.thinVsessionTerminal.matches(var1) && this.thinVsessionTerminal.length() <= 30) {
                if(this.thinVsessionMachine != null && (this.thinVsessionMachine.matches(var1) || this.thinVsessionMachine.length() > 64)) {
                    var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.machine\' and value is \'" + this.thinVsessionMachine + "\'");
                    var2.fillInStackTrace();
                    throw var2;
                } else if(this.thinVsessionProgram == null || !this.thinVsessionProgram.matches(var1) && this.thinVsessionProgram.length() <= 48) {
                    if(this.thinVsessionProcess == null || !this.thinVsessionProcess.matches(var1) && this.thinVsessionProcess.length() <= 24) {
                        if(this.thinVsessionIname != null && this.thinVsessionIname.matches(var1)) {
                            var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.iname\' and value is \'" + this.thinVsessionIname + "\'");
                            var2.fillInStackTrace();
                            throw var2;
                        } else if(this.thinVsessionEname != null && this.thinVsessionEname.matches(var1)) {
                            var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.ename\' and value is \'" + this.thinVsessionEname + "\'");
                            var2.fillInStackTrace();
                            throw var2;
                        }
                    } else {
                        var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.process\' and value is \'" + this.thinVsessionProcess + "\'");
                        var2.fillInStackTrace();
                        throw var2;
                    }
                } else {
                    var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.program\' and value is \'" + this.thinVsessionProgram + "\'");
                    var2.fillInStackTrace();
                    throw var2;
                }
            } else {
                var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.terminal\' and value is \'" + this.thinVsessionTerminal + "\'");
                var2.fillInStackTrace();
                throw var2;
            }
        } else {
            var2 = DatabaseError.createSqlException((OracleConnection)null, 190, "Property is \'v$session.osuser\' and value is \'" + this.thinVsessionOsuser + "\'");
            var2.fillInStackTrace();
            throw var2;
        }
    }
    



    1. 類似の文字列でグループ化

    2. RETURNING INTO句の使用は、個別のSELECTステートメントよりも高速ですか?

    3. リンクされたテーブルのリストをAccess2016からExcelにエクスポートする方法

    4. RailsとMySQL-本番環境でActiveRecord::ConnectionNotEstablished