我要做的是创建一些带参数的任意sql命令,设置参数的值和类型,然后返回解析的sql命令 - 包含参数.我不会直接对sql数据库运行此命令,因此不需要连接.因此,如果我运行下面的示例程序,我希望看到以下文本(或类似的东西):
WITH SomeTable (SomeColumn)
AS
(
SELECT N':)'
UNION ALL
SELECT N'>:o'
UNION ALL
SELECT N'^_^'
)
SELECT SomeColumn FROM SomeTable
Run Code Online (Sandbox Code Playgroud)
示例程序是:
using System;
using System.Data;
using System.Data.SqlClient;
namespace DryEraseConsole
{
class Program
{
static void Main(string[] args)
{
const string COMMAND_TEXT = @"
WITH SomeTable (SomeColumn)
AS
(
SELECT N':)'
UNION ALL
SELECT N'>:o'
UNION ALL
SELECT @Value
)
SELECT SomeColumn FROM SomeTable
";
SqlCommand cmd = new SqlCommand(COMMAND_TEXT);
cmd.CommandText = COMMAND_TEXT;
cmd.Parameters.Add(new SqlParameter
{
ParameterName = …Run Code Online (Sandbox Code Playgroud) 如何将sql_variant参数添加到SQL CLR存储过程?使用System.Object不起作用,我没有看到任何可以使用的属性.
[Microsoft.SqlServer.Server.SqlProcedure]
public static void ClearOnePartition(
SqlString aString
, /* I want this to be a sql_variant */ object aVariant
)
{
//do stuff here
}
Run Code Online (Sandbox Code Playgroud) KClass定义为public interface KClass<T : Any> : KDeclarationContainer, KAnnotatedElement, KClassifier
这很棘手,因为 a 的类String?应该是KClass<String>,但不可能获得。
给出下面的 3 个示例(它们本质上应该执行相同的工作),其中 1 个无法编译,其他返回相同的运行时类型。
inline fun <reified T> test1(): Any = T::class
inline fun <reified T: Any> test2(): KClass<T> = T::class
inline fun <reified T> test3(): KClass<T> = T::class // does not compile
test1<String?>() // class kotlin.String
test1<String>() // class kotlin.String
test2<String?>() // does not compile
test2<String>() // class kotlin.String
Run Code Online (Sandbox Code Playgroud)
问题的重点是问:如何获得 的运行时行为和test1的编译时行为(和安全性)test2?
编辑:问题的最后一个附录是另一个示例,它演示了获取可为空类型的类的问题。
inline fun <reified T> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在postgres中运行“ upsert”,例如:
INSERT INTO my_table (
id, -- unique key
name,
hash
) VALUES (
'4b544dea-b355-463c-8fba-40c36ac7cb0c',
'example',
'0x0123456789'
) ON CONFLICT (
id
) DO UPDATE SET
name = 'example',
hash = '0x0123456789'
RETURNING
OLD.hash;
Run Code Online (Sandbox Code Playgroud)
我想返回该hash列的先前值(由于OLD不是有效的表别名,以上示例不是有效的查询)。重要的是,我正在尝试找到一种在负载下不会引起冲突的方法。这有可能吗?还是在事务中执行先写后读的唯一解决方案?
与通常使用多维数据集一样,用户希望层次结构显示不适合层次结构的内容.他们希望将Day> Week> Month> Quarter> Year视为等级,但周数问题是它们可以是1-2个月的一部分,而不仅仅是1个月(并且延长部分2个季度,学期,年份).
所以我的问题是:如何设置属性关系,以及如何设置层次结构?这就是我所拥有的,但我知道这不是最佳选择.
层次结构(周期==周):

属性关系:
没有周期 - >年,因为它是多对多的关系
我在 Kotlin 中定义了一个类/接口对,如下所示:
@JsonDeserialize(`as` = SimpleEvent::class)
interface Event {
val organizationId: UUID
val userId: UUID
val eventTime: LocalDateTime
val eventId: UUID
@get:JsonAnyGetter
@get:JsonAnySetter
val details: Map<String, JsonNode>
}
data class SimpleEvent(
override val organizationId: UUID,
override val userId: UUID,
override val eventTime: LocalDateTime,
override val eventId: UUID,
override val details: Map<String, JsonNode>
) : Event
Run Code Online (Sandbox Code Playgroud)
我的目标是将 json 文档中的任何额外字段转换为地图中的条目details。和注释很有希望,但我找不到一种方法来使用不可@JsonAnyGetter变的构造函数参数。 按预期工作,但似乎被忽略。@JsonAnySetter@JsonAnySetter@JsonAnyGetter@JsonAndSetter
c# ×2
kotlin ×2
sql ×2
sql-server ×2
dimensions ×1
jackson ×1
java ×1
json ×1
olap ×1
postgresql ×1
sqlclr ×1
sqlcommand ×1
sqlparameter ×1
ssas ×1
time ×1