我试图获取节点的节点值type.它必须返回string"my_type",但返回一个空字符串.
declare @v_msg int
DECLARE @loadXML_result INT
declare @v_line varchar(4000)
declare @nodelist int
DECLARE @node INT
DECLARE @childnode INT
DECLARE @CHILDNODE_nodevalue VARCHAR(MAX)
set @v_line =
'<message>
<type>my_type</type>
</message>';
EXECUTE sp_OACreate 'MSXML2.DOMDocument.6.0',@v_msg OUTPUT
EXECUTE sp_OAMethod @v_msg,'loadXML',@loadXML_result OUTPUT,@v_line
EXECUTE sp_OAMethod @v_msg,'getElementsByTagName',@nodelist OUTPUT,'type'
EXECUTE sp_OAMethod @nodelist,'Item',@node OUTPUT,0
EXECUTE sp_OAGetProperty @node,'firstChild',@childnode OUTPUT
print concat('child_node ',@childnode)
EXECUTE sp_OAGetProperty @childnode,'nodeValue',@CHILDNODE_nodevalue OUTPUT
print concat ('CHILDNODE_nodevalue ',@CHILDNODE_nodevalue)
Run Code Online (Sandbox Code Playgroud)
进一步检查sp_OAGetProperty显示错误的执行状态:
DECLARE @hr INT
EXECUTE @hr = sp_OAGetProperty @node,'Text',@CHILDNODE_nodevalue OUTPUT
--Check status of the previous …Run Code Online (Sandbox Code Playgroud) 是否可以在 PostgreSQL 的动态 SQL 中创建函数或执行匿名块?我正在寻找这样的东西:
Create or replace FUNCTION fff(p1 int)
LANGUAGE plpgsql
AS $$
DECLARE
v_Qry VARCHAR(4000);
BEGIN
v_Qry := '
Create or replace FUNCTION fff_DYNAMIC_SQL()
LANGUAGE plpgsql
AS $$
DECLARE
v1 INTEGER;
begin
v1 := ' || p1 || ';
RETURN;
END; $$;';
EXECUTE v_Qry;
RETURN;
END; $$;
Run Code Online (Sandbox Code Playgroud)