这是我写的一个存储过程`请问这样写有错吗`?
strSql VARCHAR2(3000);
BEGIN
strSql :='SELECT a 1,b 2 FROM dual cm'
strSql := strSql ||' inner join (SELECT c 1 FROM dual
WHERE paracode = ''1''
)ST
ON ST.c=cm.a';
报错啊``请问能这样写吗`?
strSql VARCHAR2(3000);
BEGIN
strSql :='SELECT a 1,b 2 FROM dual cm'
strSql := strSql ||' inner join (SELECT c 1 FROM dual
WHERE paracode = ''1''
)ST
ON ST.c=cm.a';
报错啊``请问能这样写吗`?
解决方案 »
- 关于oracle数据库的 dblink问题
- 跨服务器操作数据库
- 请教个存储过程的错误问题
- 请问一个普通用户,比如scott,它能够登录到Oracle Enterprise Manager吗?
- oracle9i的安装问题
- 通过pb怎样连接orcale数据库,请指教。
- 请问新装Oracle 8i后各个程序需要的用户名和口令是...?
- 卸载oracle时,删注册表内容,里面用一个汉字目录,不让删,咋办???
- 在http://otn.oracle.com/software/products/oracle9i/content.html可以下载的oracle9i是否可用?
- 使用oracle自带的UTL_SMTP包来发送邮件
- 求一个sql语句
- 请问一下,如何判断数据库中一个表已存在?
把ora错误贴出来,看下。
如果一个`NUMBER 一个varchar2`` 怎么转呢?????是不是这个问题``
declare
strSql VARCHAR2(3000);
BEGIN
strSql :='SELECT a 1,b 2 FROM dual cm';
strSql := strSql ||' inner join (SELECT c 1 FROM dual
WHERE paracode = ''1''
)ST
ON ST.c=cm.a';
end;写成这样,在我的plsql里面可以编译通过。你的问题:
1,没有declare开头声明变量
2,begin没有end;来结尾。
/*
测试存储过程
*/
strSql VARCHAR2(3000);
BEGIN strSql := 'SELECT a 1,b 2 FROM dual cm';
strSql := strSql || ' inner join (SELECT c 1 FROM dual
WHERE paracode = ''1''
)ST
ON ST.c=cm.a';END;
alter table 表名 add 备份列 INTEGER;--将修改列的数据备份到备份列
update 表名 set 备份列= 修改列; --清空修改列
update 表名 set 修改列=null; --修改修改列的类型为小数
alter table 表名 modify 修改列 NUMBER(10,2);
update 属性表名 set dbit_id='DECIMAL' ,attr_collength=10,attr_colscale=2 where attr_id= 修改列对应的属性的ID
--将备份列的值更新到修改列
update 表名 set 修改列=备份列; --删除备份列
alter table 表名 drop column 备份列;
strSql VARCHAR2(3000);
BEGIN
strSql := 'SELECT a 1,b 2 FROM dual cm';
strSql := strSql || ' inner join (SELECT c 1 FROM dual
WHERE paracode = ''1''
)ST
ON to_number(ST.c)=cm.a';
END;
SELECT a 1,b 2 FROM dual
SELECT c 1 FROM dual
直接去环境中查询下就知道了