sas - SAS 宏变量在变量名 Proc Http 中转义撇号
问题描述
我已经为此工作了 3 天,并尝试了所有我能想到的方法,包括 %str()、%bquote()、translate() 和 tranwrd() 来用双撇号或 %' 替换单个撇号</p>
下面的数据步骤和宏工作正常,直到我找到一个包含撇号的姓氏,例如 O'Brien。然后,由于未闭合的左括号,我遇到了语法错误。下面的代码我留下了我认为最接近包含的 tranwrd 的代码。
非常感谢您提供的任何帮助。
%macro put_data (object1,id);
Proc http
method=“put”
url=“https://myurl/submissionid/&id”
in=&object1;
Headers “content-type”=“application/json”;
Run;
%mend;
data _null_;
Set work.emp_lis;
call execute(catt(‘%put_data(‘,’%quote(‘’{“data”:{“employeeName”:”’,tranwrd(employeeName,”’’”,”’”),’”}}’’),’,id,’)’));
run;
克雷格
解决方案
我能够发现我的代码与 tranwrd 语句的问题是向后的,它需要移动到 proc sql create table 语句。我还需要将 &object1 包含在 %bquote 中。这是最终有效的代码。在 tranwrd 中创建表换行变量时,如下所示。
tranwrd(员工姓名,“'“,”''”)
% macro put_data (object1,id);
Proc http
method=“put”
url=“https://myurl/submissionid/&id”
in=%bquote(&object1);
Headers “content-type”=“application/json”;
Run;
%mend;
data _null_;
Set work.emp_lis;
call execute(catt(‘%put_data(‘,’%quote(‘’{“data”:{“employeeName”:”’,employeeName,’”}}’’),’,id,’)’));
run;
推荐阅读
- javascript - 使用通过 React-router 传入 url 的参数
- python - 如何将 OpenCV 函数中的一维数组与 CNN 中的扁平向量连接起来
- python - Pyspark DataFrame 计算另一列中某列值的出现次数
- sql-server - SQL Azure 远程过程
- python-3.x - Gunicorn 没有自动启动
- database - 耳语数据库的替代品
- java - 如何显示与长按下图搜索图标时相同的自定义视图?
- python - 为什么 `asyncio.run()` 在 Python 3.8 中永远不会返回?
- python - 在 Python 中从大型 tiff 堆栈加载单个图像
- unicode - 带有肤色的表情符号如何在内部表示?