PL/SQL Function:--->
RTRIM()
RTRIM()
解决方案 »
- 我这个sql语句不知道哪里错了,提示“无效字符”
- /etc/rc.local无法正确使用chmod和chown命令
- 批量插入的多个select怎么写
- oracle行转列问题
- 请问各位oracle 高手一个关于sqlldr 的问题............
- 关于Access导入Oracle的问题
- 如何升级oracle9i到oracle9iR2呢?
- SELECT 语句出错,哪能办?ORA-01555、ORA-02063
- jdbc访问oracle数据库时,如何取得表名?getTableName()返回的是空字符串
- oracle11g安装时所有条件都不满足
- 请问oracle 与 java一问题
- 某个字段判断长度是否小于5,如果是小于5就在右边加上5个空格,如果大于等于5就返回原数据,如何做呀?急
char result[1024];
char sql_txt[1024];
EXEC SQL END DECLARE SECTION;
strcpy(sql_txt , str1); EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
oraca.orastxtf=ORASTFERR;
EXEC SQL PREPARE S FROM :sql_txt;
EXEC SQL DECLARE C CURSOR FOR S;
EXEC SQL OPEN C;
EXEC SQL WHENEVER NOT FOUND GOTO no_more;
while(1)
{
memset(result, '\0' , sizeof(result));
EXEC SQL FETCH C INTO :result;
strcpy(str2,result);
} no_more:
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL COMMIT WORK;
return 1; sqlerror:
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL CLOSE C;
EXEC SQL ROLLBACK;
return sqlca.sqlcode;假如查询的数据只有10位,而result的长度有1024,后面全是空格呀!这个问题怎么解决呀?并且如果查询的数据也有空格呢??那岂不是数据补正确了吗
EXEC SQL select ltrim(rtrim(result)) into :resilt from dual;
strcpy(str2,result);
EXEC SQL BEGIN DECLARE SECTION;
varchar result[1024];
char sql_txt[1024];
EXEC SQL END DECLARE SECTION;
... EXEC SQL FETCH C INTO :result;
result.arr[result.len]='\0';
strcpy(str2,result.arr);
...
varchar2 result[1024];
EXEC SQL END DECLARE SECTION;memset(&result,0,sizeof(result));
EXEC SQL select 'aaa' into :resultfrom dual;
result.arr[result.length]=0;
strcpy(str2,result.arr);
编译补过去!!