如何从存储过程(OUT变量)返回的引用游标中获取并将结果行打印到SQL*PLUS中的STDOUT?
ORACLE存储过程:
PROCEDURE GetGrantListByPI(p_firstname IN VARCHAR2, p_lastname IN VARCHAR2,
p_orderby IN VARCHAR2, p_cursor OUT grantcur);
Run Code Online (Sandbox Code Playgroud)
PL/SQL:
SET SERVEROUTPUT ON;
DECLARE
TYPE r_cursor IS REF CURSOR;
refCursor r_cursor;
CURSOR grantCursor IS
SELECT last_name, first_name
FROM ten_year_pis
WHERE year_added = 2010;
last_name VARCHAR2(100);
first_name VARCHAR2(100);
BEGIN
OPEN grantCursor;
FETCH grantCursor INTO last_name, first_name;
WHILE grantCursor%FOUND LOOP
PMAWEB_PKG.GetGrantListByPI(last_name, first_name, 'last_name', refCursor);
--HOW DO I LOOP THROUGH THE RETURNED REF CURSOR (refCursor)
--AND PRINT THE RESULTING ROWS TO STDOUT?
FETCH grantCursor into last_name, first_name; …Run Code Online (Sandbox Code Playgroud) 我有一个简单的spring-boot应用程序打包为.war文件,可以部署到外部Tomcat容器.我在类路径(/ WEB-INF/classes)中有一个logback.xml(下面),但是,当部署到Tomcat时,日志不会写入该文件.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的Java MVC Web应用程序,并使用servlet来处理表单验证.如果表单已验证,请求将转发到适当的视图.但是,如果表单验证失败,请求将转发回表单,然后显示相应的错误消息.
我的问题是 - 使用最初由用户在表单中输入的数据重新填充所有表单字段的最有效方法是什么?
我没有使用MVC框架,只是简单的HttpServlets作为控制器,以.jsp作为视图.
我有一个简单的shell脚本执行.sql脚本..sql脚本完成后,shell脚本会将电子邮件发送到指定的地址,通知.sql脚本是否成功运行.
我的问题是主题行被截断.我使用简单的IF语句来确定主题行:
grep 'ORA-' $OUTFILE > /dev/null 2>&1
if [ $? = 1 ]; then
ERRORS=n
SUBJECT= "$VERSION script successful"
else
ERRORS=y
SUBJECT="$VERSION script had error(s)"
fi
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,当我执行mailx命令时,主题行将被截断为"开发"或"生产",具体取决于已执行的脚本的版本:
mailx -s $SUBJECT $EMAIL < $MAILFILE
Run Code Online (Sandbox Code Playgroud)
我知道如果主题行包含嵌入空格,则主题行必须是双引号,但是当分配给变量时,这似乎不能正常工作.
有没有解决的办法?有没有办法逃避双引号
我试图在我的应用程序中使用Ehcache和内置缓存注释的Spring 3.1(@ Cryache,@ CacheEvict和@CachePut)实现缓存.
我创建了一个缓存如下:
@Cacheable(value = "userCache", key = "#user.id")
public List<User> getAllUsers() {
...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用@CachePut注释使用新值更新此缓存,如下所示:
@CachePut(value = "userCache", key = "#user.id")
public void addUser(User user) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,新的"用户"未添加到缓存中.这是因为void返回类型?