oracle中怎么select出一个值赋给变量,然后另一句话使用该变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中怎么select出一个值赋给变量,然后另一句话使用该变量?相关的知识,希望对你有一定的参考价值。

定义一个变量 STATUS char(2)
我先 select u_status from T where id=1 取出status 赋给 STATUS
然后 update T set u_status = STATUS where id=2 set的之后,值是那个变量

select u_status into STATUS from T where id=1 参考技术A 把第一个sql 当做一个子查询就是了,给放到update下面,可能会有返回多个值的错误,在详细调整语句就好了

直接将结构成员的值赋给变量

【中文标题】直接将结构成员的值赋给变量【英文标题】:Directly assign value of struct member into variable 【发布时间】:2021-08-28 15:31:51 【问题描述】:

我遇到了以下代码,非常新颖有趣。

u8 m_var = stptfunc()->mem;

以前从未见过这种初始化。代码编译并运行良好。 我只是好奇这是否是一种常见的做法。

通常我会这样编码...

strtype *ptrfunc()

// statements


sttype *stvar = ptrfunc();
u8 var = stvar->mem;

示例代码:

typedef unsigned char u8;

typedef struct
    u8 mem;
sttype;

sttype *stptfunc(void)

    static sttype stvar;
    stvar.mem = 255;
    return &stvar;


int main()

    u8 m_var = stptfunc()->mem;
    printf("value of %d",m_var);
    return 0;

输出 [1]:https://i.stack.imgur.com/rSUaD.png

【问题讨论】:

之所以有效,是因为stptfunc 正在返回static 变量的地址。以我的经验,这不是常见的做法 - 但它可能是。我想这取决于你问谁。 @JohnnyMopp 嗨......是的,它工作正常。这是一种常见的做法吗? 以前从未见过这样的做法,我个人认为这是非常糟糕的做法:) 【参考方案1】:

stptfunc()->mem 表示stptfunc 是一个返回指针的函数,该指针被取消引用以获取其mem 字段。由于我们拥有整个程序,我们可以看到这个假设成立。

这可能是不好的做法。如果stptfunc 返回NULL 怎么办?不能保证不会。

在这样一个简单的程序中,这没什么大不了的,但这是一个不好的做法。

此外,根据 cmets,与使用 malloc/free 相比,函数中的静态变量可能是一种非常糟糕的做法。

【讨论】:

以上是关于oracle中怎么select出一个值赋给变量,然后另一句话使用该变量?的主要内容,如果未能解决你的问题,请参考以下文章

怎么将sql中select语句选出的值赋给个变量。C#中。

怎么将sql中select语句选出的值赋给个变量。C#中。

sql server 2000 如何把select的值赋给一个变量

在access中用vba如何把SQL语句查询到的一个值赋给变量?

在c语言里怎么把第一个变量的值赋给第二个变量

nginx配置文件中怎么把hostname的值赋给其它变量