Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据我编写的函数,使用不同的值更新表中所有行的列?_Sql_Vb.net - Fatal编程技术网

Sql 如何根据我编写的函数,使用不同的值更新表中所有行的列?

Sql 如何根据我编写的函数,使用不同的值更新表中所有行的列?,sql,vb.net,Sql,Vb.net,我有一个表,我想更新所有行的列tempID(现在为空) 该表已经有多条记录 我想用从函数生成的字符串(随机)更新每一行 tempID Name Address null xyz asdf null abc asdfds 我想更新该表,使其如下所示: tempID Name Address emp101 xyz asdf emp102 abc asdfds 这就像在exc

我有一个表,我想更新所有行的列
tempID
(现在为空)

该表已经有多条记录

我想用从函数生成的字符串(随机)更新每一行

tempID    Name       Address
null      xyz        asdf
null      abc        asdfds
我想更新该表,使其如下所示:

tempID    Name       Address
emp101    xyz        asdf
emp102    abc        asdfds

这就像在excel上输入数据并导出到此表后为员工分配id一样。

您可以在下面的代码段中尝试。我尝试使用ORA_散列值来生成随机唯一标识符。希望这有帮助

alter session set NLS_LENGTH_SEMANTICS = CHAR;



CREATE TABLE emp_tab
  (
    empid   VARCHAR2(100),
    name    VARCHAR2(100),
    Address VARCHAR2(1000)
  );

INSERT INTO emp_tab
SELECT NULL,'Avrajit'||level,'PUNE'||level FROM dual CONNECT BY level < 10;

CREATE OR REPLACE
  FUNCTION gen_random_empid(
      emp_name IN VARCHAR2)
    RETURN VARCHAR2
  AS
    emp_id VARCHAR2(100);
  begin
    SELECT 'Emp'||ora_hash(emp_name) INTO emp_id FROM dual;
    return emp_id;
  end;

UPDATE emp_tab SET empid = gen_random_empid(NAME);

SELECT * FROM emp_tab;
alter session set NLS\u LENGTH\u SEMANTICS=CHAR;
创建表emp_选项卡
(
empid VARCHAR2(100),
名称VARCHAR2(100),
地址:VARCHAR2(1000)
);
插入emp_选项卡
从dual CONNECT BY level<10中选择NULL、'Avrajit'| | level、'PUNE'| | level;
创建或替换
函数gen_random_empid(
在VARCHAR2中的emp_名称)
返回VARCHAR2
作为
emp_id VARCHAR2(100);
开始
从dual中选择Emp'|| ora|u hash(Emp_名称)进入Emp_id;
返回emp_id;
结束;
更新emp\U选项卡设置empid=gen\U random\U empid(名称);
从emp_选项卡中选择*;

您可以尝试下面的代码片段。我尝试使用ORA_散列值来生成随机唯一标识符。希望这有帮助

alter session set NLS_LENGTH_SEMANTICS = CHAR;



CREATE TABLE emp_tab
  (
    empid   VARCHAR2(100),
    name    VARCHAR2(100),
    Address VARCHAR2(1000)
  );

INSERT INTO emp_tab
SELECT NULL,'Avrajit'||level,'PUNE'||level FROM dual CONNECT BY level < 10;

CREATE OR REPLACE
  FUNCTION gen_random_empid(
      emp_name IN VARCHAR2)
    RETURN VARCHAR2
  AS
    emp_id VARCHAR2(100);
  begin
    SELECT 'Emp'||ora_hash(emp_name) INTO emp_id FROM dual;
    return emp_id;
  end;

UPDATE emp_tab SET empid = gen_random_empid(NAME);

SELECT * FROM emp_tab;
alter session set NLS\u LENGTH\u SEMANTICS=CHAR;
创建表emp_选项卡
(
empid VARCHAR2(100),
名称VARCHAR2(100),
地址:VARCHAR2(1000)
);
插入emp_选项卡
从dual CONNECT BY level<10中选择NULL、'Avrajit'| | level、'PUNE'| | level;
创建或替换
函数gen_random_empid(
在VARCHAR2中的emp_名称)
返回VARCHAR2
作为
emp_id VARCHAR2(100);
开始
从dual中选择Emp'|| ora|u hash(Emp_名称)进入Emp_id;
返回emp_id;
结束;
更新emp\U选项卡设置empid=gen\U random\U empid(名称);
从emp_选项卡中选择*;

我已经解决了。我所做的是我分配了一个正常的序列号1,2,3。。。在从excel工作表导出时使用tempID,然后像这样更新查询

Dim upsql=“Update tb_Tempmember set tempID=”&generatenextid()&“where tempID=”&CStr(mysequenceid)&“”

这是循环中的


谢谢你的支持

我已经解决了。我所做的是我分配了一个正常的序列号1,2,3。。。在从excel工作表导出时使用tempID,然后像这样更新查询

Dim upsql=“Update tb_Tempmember set tempID=”&generatenextid()&“where tempID=”&CStr(mysequenceid)&“”

这是循环中的


谢谢你的支持

请给我们一些输入数据和预期的输出。您使用的是VB.NET,愚蠢的方法是使用循环。首先自己尝试,或者通过提供我已编辑的问题来增强您的问题,请检查您的示例结果是否非常随机。无论是随机的还是按顺序的,都无关紧要,但我要求将该id分配并更新给员工。我尝试了循环,生成了id,但在更新查询时,id没有相应地更新。我在想我应该在where子句中加什么。Dim upsql=“更新tb_Tempmember set tempID=”&id&“'请给我们一些输入数据和预期的输出。您使用的是VB.NET,愚蠢的做法是使用循环。首先自己尝试,或者通过提供我已编辑的问题来增强您的问题,请检查您的示例结果是否非常随机。无论是随机的还是按顺序的,都无关紧要,但我要求将该id分配并更新给员工。我尝试了循环,生成了id,但在更新查询时,id没有相应地更新。我在想我应该在where子句中加什么。Dim upsql=“Update tb_Tempmember set tempID=”&id&“谢谢您的尝试,但这不是我想要的答案。实际上,在我的vb.net代码中,我想从我自己生成的函数中更新id,然后对表的每一行更新tempID,如下所示。Dim upsql=“Update tb_Tempmember set tempID=”&GetNextid()谢谢你的尝试,但这不是我想要的答案。实际上,在我的vb.net代码中,我想从我自己生成的函数中更新id,然后对表的每一行更新tempID,如下所示。Dim upsql=“Update tb_Tempmember set tempID=”&GetNextid()