sch*_*tbi 15
你可以查询表名
select tname from tab where tname = 'TABLE_NAME_TO_SEARCH_FOR';
Run Code Online (Sandbox Code Playgroud)
最有效的方法是,不要。把桌子放下就行了。如果该表尚不存在,则会引发异常。
在删除表之前运行查询只是浪费时间做 Oracle 会自动为您做的事情。
您可以根据需要处理异常,例如:
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE "MYTABLE"';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -942 THEN
DBMS_OUTPUT.put_line('the table did not exist!');
ELSE
RAISE;
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
这就是信息模式的真正威力所在。一个简单的查询将为您指明正确的方向
SELECT
*
FROM
information_schema.tables
WHERE
table_name='salesorders';
Run Code Online (Sandbox Code Playgroud)
然后可以在 plpg 函数中使用它
CREATE OR REPLACE FUNCTION table_exists(v_table text)
RETURNS boolean AS
$BODY$
DECLARE
v_count int;
v_sql text;
BEGIN
v_sql =
'SELECT ' ||
' count(1) ' ||
'FROM ' ||
' information_schema.tables ' ||
'WHERE ' ||
E' table_name=\'' || v_table || E'\'';
EXECUTE v_sql INTO v_count;
RETURN v_count>0;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
Run Code Online (Sandbox Code Playgroud)
使用功能
select * from table_exists('salesordesrs');
Run Code Online (Sandbox Code Playgroud)
这应该足以让你继续前进。
哎呀似乎我误读了原来的海报问题。我已经回答了 PostgreSQL。
彼得。
| 归档时间: |
|
| 查看次数: |
48726 次 |
| 最近记录: |