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

OracleParameterおよびIN句

    OracleCommandExtensionメソッドでラップできます:

    public static class OracleCommandExtension
    {
        public static OracleCommand AddParameterCollection<TValue>(this OracleCommand command, string name, OracleType type, IEnumerable<TValue> collection)
        {
            var oraParams = new List<OracleParameter>();
            var counter = 0;
            var collectionParams = new StringBuilder(":");
            foreach (var obj in collection)
            {
                var param = name + counter;
                collectionParams.Append(param);
                collectionParams.Append(", :");
                oraParams.Add(new OracleParameter(param, type) { Value = obj });
                counter++;
            }
            collectionParams.Remove(collectionParams.Length - 3, 3);
            command.CommandText = command.CommandText.Replace(":" + name, collectionParams.ToString());
            command.Parameters.AddRange(oraParams.ToArray());
            return command;
        }
    }
    


    1. CTEエラー:アンカーと再帰部分の間でタイプが一致しません

    2. レコードを挿入し、単一のSqlCommandを使用して新しく作成されたIDを返す方法は?

    3. PostgreSQLテーブルを変更して列を一意にするにはどうすればよいですか?

    4. MariaDBのテーブルからランダムな行を返す